db oracle dba知识整理

DBA_ON_THE_ROAD
http://www.oracle.com/technology/documentation/database11gR1.html
http://topic.csdn.net/t/20010829/17/261936.html
http://www.oracle.com/pls/db102/homepage?remark=tahiti
http://metalink.oracle.com/ 合作伙伴或购买服务者
http://asktom.oracle.com    相关事务的处理的经验
http://www.orafaq.net       Oracle相关问题查询
http://www.dbazine.com    Oracle的杂志阅读
http://tahiti.oracle.com       Oracle的基本概念
http://www.ixora.com.au/
http://www.oracle-base.com
http://www.dba-oracle.com/oracle_links.htm
Oracle 错误代码查询
http://oradictionary.appspot.com/
http://bbs.51cto.com/thread-73876-1-1.html
E:/program/database/Oracle/Oracle_Errors.chm
E:/program/database/Oracle/Ora 10G Err_Msg.chm
http://www.oracle.com.cn/viewthread.php?tid=53338
http://www.oraclefans.cn/forum/showtopic.jsp?rootid=8338&CPages=1
http://bbs.51cto.com/viewthread.php?tid=73876&pid=2009927&page=1&extra=page%3D1#pid2009927
一个简单的查询所有Oracle错误代码的语句
http://www.hellodba.com/
http://fuyuncat.itpub.net/post/5203/64265

Sql代码
  1. begin  
  2. dbms_output.enable(1000000);   
  3. for i in 0..10000 loop   
  4. dbms_output.put_line(SQLERRM(0-i));   
  5. end loop;   
  6. dbms_output.disable();   
  7. dbms_output.enable(1000000);   
  8. for i in 10001..20000 loop   
  9. dbms_output.put_line(SQLERRM(0-i));   
  10. end loop;   
  11. end; /  

//192.168.129.21/
[root@snweb1 ~]#cd /app/oracle/product/10.2.0/db_1
[oracle@snweb1 ~]$ vi /home/oracle/.bash_profile

Sql代码
  1. ORACLE_BASE=/app/oracle   
  2. ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1/   
  3. ORACLE_SID=snpdb   
  4. export ORACLE_BASE   
  5. export ORACLE_HOME   
  6. export ORACLE_SID   
  7. PATH=$PATH:$ORACLE_HOME/bin   
  8. export PATH  
[oracle@snweb1 ~]$ sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Mar 4 12:38:11 2010
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Enter user-name: connect as SYSDBA
Enter user-name: connect  /as SYSDBA
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
# Linux自动启动/停止Oracle数据库
@ http://doc.linuxpk.com/48957.html
@ http://www.oklinux.cn/html/sql/other/20080224/47382.html
@ http://hi.baidu.com/yjlj569/blog/item/a167ad231002054b925807f4.html
SQL> shutdown normal
SQL>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
[oracle@snweb1 ~]$exit
[root@snweb1 ~]#

ORACLE中客户端连接服务器端常见问题与解决
http://www.javaeye.com/topic/67440
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:
1、  ORA-12541: TNS: 没有监听器
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
$ lsnrctl start
C:/lsnrctl start
2、  ORA-12500: TNS: 监听程序无法启动专用服务器进程
对于Windows而言,没有启动Oracle实例服务。启动实例服务:
C:/oradim –startup -sid myoracle
3、  ORA-12535: TNS: 操作超时
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、  ORA-12154: TNS: 无法处理服务名
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:/oracle/ora92/network/admin /tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora)里每项服务的首行服务名称前不能有空格。
5、  ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
6、  Windows 下启动监听服务提示找不到路径
用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为D:/oracle/ora92/BIN/TNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:/oracle/ora92 /binORACLE.EXE MYORACLE。
以上是Oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。
--Oracle 数据字典
--Oracle 数据字典很多,通常我记不住所有的名字,我们可以用以下SQL去查数据字典的名字
如:select distinct object_name from dba_objects where object_name like 'user_%';
--本用户字典
SQL> select distinct object_name from dba_objects where object_name like 'USER_%';
--系统用户字典
SQL> select distinct object_name from dba_objects where object_name like 'DBA_%';
--动态字典
SQL> select distinct object_name from dba_objects where object_name like 'V$_%';
--表
SQL> select * from cat;
SQL> select * from tabs;
SQL> select * from user_tables;
--视图
SQL> select * from user_views;
SQL> select   text   from   user_views   where   view_name=upper('&view_name');
--索引
SQL> select * from user_indexes;
SQL> select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by   table_name;
--快照 select * from user_snapshots;
SQL> select owner,name,master,table_name,last_refresh,next from user_snapshots order by owner,next;
--触发器
SQL> select * from user_triggers;
SQL> select trigger_name,trigger_type,table_owner,table_name,status from user_triggers;
--同义词

SQL> select * from syn;
--序列

SQL> select * from seq;
SQL> select * from user_sequences;

--数据库链路

SQL> select * from user_db_links;
--约束限制

SQL> select * from user_constraints;
SQL> select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints;

--本用户读取其它用户对象的权限

SQL> select   *   from   user_tab_privs;

--本用户所拥有的系统权限

SQL> select   *   from   user_sys_privs;

--Oracle系统中的所有用户

SQL> select * from all_users;

SQL> select username from all_users;

SQL> select * from all_users order by user_id;

--表空间剩余自由空间情况?

SQL> select tablespace_name,sum(bytes),max(bytes),count(*) from dba_free_space group by tablespace_name;

--数据字典

SQL> select table_name from dict order by table_name;

--锁及资源信息

SQL> select * from v$lock;

--不包括DDL锁数据库字符集?
SQL> select   name,value$   from props$ where name='NLS_CHARACTERSET';

--inin.ora参数

SQL> select name,value from v$parameter order by name;

--SQL共享池

SQL> select * from v$sqlarea;
SQL> select sql_text from v$sqlarea;

--数据库

SQL> select * from v$database;

--控制文件

SQL> select * from V$controlfile;

--重做日志文件信息

SQL> select * from V$logfile;

--来自控制文件中的日志文件信息

SQL> select * from V$log;

--来自控制文件中的数据文件信息

SQL> select * from V$datafile;

--NLS参数当前值

SQL> select * from V$nls_parameters;

--ORACLE版本信息
SQL> select * from v$version;

--描述oracle后台进程

SQL> select * from v$bgprocess;

--查看oracle版本信息

SQL> select * from v$instance;

SQL> select * from product_component_version;

----查看oracle 数据库名(DB_NAME)

SQL> select name from v$database;

SQL> show parameter db;

SQL> select value from v$parameter where name='db_name';

----查看oracle 数据库实例名(Instance_name、ORACLE_SID)

SQL> select instance_name from v$instance;

SQL>show parameter instance;

SQL> select value from v$parameter where name='db_name';

方法三:在参数文件中查询

如:$ORACLE_BASE/admin/DB_NAME/pfile/init$ORACLE_SID.ora

----查看oracle 数据库域名、全局数据库名、数据库服务名

三、数据库名与实例名之间的关系。
    数据库名与实例名之间的关系一般是一一对应关系,有一个数据库名就有一个实例名,
    如果在一个服务器中创建两个数据库,则有两个数据库名,两个数据库实例名,用两个标识确定一个数据库,用户和实例相连接。
    但在8i、9i的并行服务器结构(即oracle实时应用集群)中,数据库与实例之间是一对多关系,(一个数据库对应多个实例,同一时间内用户只一个实例相联系,当某一实例出现故障,其它实例自动服务,以保证数据库安全运行。)
四、什么是数据库域名?

    在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix或是windows,各服务器之间都可以通过数据库链路进行远程复制,
    数据库域名主要用于oracle分布式环境中的复制。举例说明如:
        全国交通运政系统的分布式数据库,其中:
        福建节点: fj.jtyz
        福建厦门节点: xm.fj.jtyz
        江西: jx.jtyz
        江西上饶:sr.jx.jtyz
    这就是数据库域名。
    数据库域名在存在于参数文件中,他的参数是db_domain.
    查询数据库域名
    方法一:select value from v$parameter where name = 'db_domain';
            SQL> select value from v$parameter where name='db_domain';
            VALUE
            -----------------------------------------------------------          
    方法二:show parameter domain
            SQL> show parameter domain
            NAME                                 TYPE        VALUE
            ------------------------------------ ----------- ------------------
            db_domain                            string
    方法三:在参数文件中查询。
五、全局数据库名

    全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz
六、什么是数据库服务名?

    从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAMES。
    如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
    查询数据库服务名
    方法一:select value from v$parameter where name = 'service_names';
            SQL> select value from v$parameter where name='service_names';
            VALUE
            --------------------------------------------------------------
            orcl
    方法二:show parameter service_name
            SQL> show parameter service_name;
            NAME                                 TYPE        VALUE
            ------------------------------------ ----------- ---------
            service_names                        string      orcl
    方法三:在参数文件中查询。
    数据库服务名与网络连接
    从oracle8i开始的oracle网络组件,数据库与客户端的连接主机串使用数据库服务名。之前用的是ORACLE_SID,即数据库实例名

 

Oracle DBA 学习与 成长

http://tylgl.javaeye.com/blog/239857
   一、定位
  oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做 form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去管理数据库。 
   二、学习方法
  看书、思考、写笔记、做实验、再思考、再写笔记看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。
  在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。
  如果是概念上的问题,第一时间可以找tahiti.oracle.com,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。
   三、oracle的体系
  oracle的体系很庞大,要学习它,首先要了解oracle的框架。在这里,简要的讲一下oracle的架构,让初学者对oracle有一个整体的认识。
  1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成) 控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件数据文件:存储数据的文件 重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。 密码文件:认证哪些用户有权限启动和关闭Oracle例程
  2、逻辑结构(表空间、段、区、块) 表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。 段:是对象在数据库中占用的空间 区:是为数据一次性预留的一个较大的存储空间 块:ORACLE最基本的存储单位,在建立数据库的时候指定
  3、内存分配(SGA和PGA) SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。 PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收
 4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程) 数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件 日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 进程监控:负责在一个Oracle 进程失败时清理资源检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。归档进程:在每次日志切换时把已满的日志组进行备份或归档 服务进程:用户进程服务。 用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。
  5、oracle例程:Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。
  6、SCN(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。
   四、深入学习
  管理:可以考OCP证书,对oracle先有一个系统的学习,然后看Oracle Concepts、oracleonlinedocument,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、 RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。
  开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。 PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。 Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。
  介绍几本oracle入门的好书oracle官方文档:《concept》上面讲了oracle的体系和概念,很适合初学者看。OCP的教学用书,也就是STUDYGUIDE(SG)。Oracle8i 备份恢复手册Oracle8高级管理与优化Oracle8i PLSQL程序设计Oracle8数据库管理员手册以上书本都是机械工业出版社出版。
Oracle 11g 固定IP设置 Microsoft Loopback Adapter
----控制面板
----添加硬件
----是,我已连接了此硬件(Y)
----添加新的硬件设备
----安装我手动从列表选择的硬件(高级)
----网络适配器
----Microsoft
----Microsoft Loopback Adapter
----ok,ipconfig

 

Oracle11g Data Guard新特點
http://space.itpub.net/304518/viewspace-348033
一、物理(Physical)standby新特点
下面是11g 物理standby数据库几个比较实用的特点。
1、Physical standby with Real Time Query
2、加快standby数据库备份的速度
3、Snapshot Standby
4、提高Redo Apply的性能
Oracle11g可以利用并行技术来进行Redo Apply ,提高恢复的速度。
二、逻辑(Logical)standby的新特点
1、支持的数据类型更多了。 XMLType data type (最为CLOB存储)
2、支持下面oracle包和数据加密 支持精细的审计功能和虚拟数据库功能
3、Fast-Start Failover  更快速执行失败切换,更精细控制触发Failover的事件,比如:可以具某ORA错误号。
(从Oracle 10g开始需要固定ip地址,利用微软自带内环网卡作固定ip支持)
体验在WINXP上安装ORACLE11g
http://www.lupaworld.com/viewthread_31337.html
http://www.lupaworld.com/bbs/attachment.php?aid=6390
Oracle_FAQ.chm
http://techbbs.enet.com.cn/attachment.php?aid=1172
http://www.oracle.com/technology/documentation/database11gR1.html
Oracle 启动和关闭
http://kingrank.javaeye.com/blog/238385
常用的有:
  1、startup nomount
  非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
  读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
  2、startup mount dbname
  安装启动,这种方式启动下可执行:
  数据库日志归档、
  数据库介质恢复、
  使数据文件联机或脱机、
  重新定位数据文件、重做日志文件。
  执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
  但此时不对数据文件和日志文件进行校验检查。
  3、startup open dbname
  先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
  这种方式下可访问数据库中的数据。
  4、startup,等于以下三个命令
  startup nomount
  alter database mount
  alter database open
  5、startup restrict
  约束方式启动
  这种方式能够启动数据库,但只允许具有一定特权的用户访问
  非特权用户访问时,会出现以下提示:
  ERROR:
  ORA-01035: Oracle 只允许具有 RESTRICTED SESSION 权限的用户使用
  6、startup force
  强制启动方式
  当不能关闭数据库时,可以用startup force来完成数据库的关闭
  先关闭数据库,再执行正常启动数据库命令
  7、startup pfile=参数文件名
  带初始化参数文件的启动方式
  先读取参数文件,再按参数文件中的设置启动数据库
  例:startup pfile=E:/Oracle/admin/oradb/pfile/init.ora
  8、startup EXCLUSIVE
  有三种启动方式:
  1)、shutdown normal
  正常方式关闭数据库。
  2)、shutdown immediate
  立即方式关闭数据库。
  在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
  而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
  当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
  3)、shutdown abort
  直接关闭数据库,正在访问数据库的会话会被突然终止,
  如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。
Oracle安装完成后的初始口令
默认帐号应该是sysdba
internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp
Id:sys as sysdba Pwd:sys Id:sys as sysoper Pwd:sys
Oracle安装完成后的修改口令
internal/oracle sys/sys system/system scott/tiger sysman/orcl dbsnmp/orcl
自动重新安装,忘记密码解决方法:
开始----运行----打开 sqlplusw
用户名:sqlplus as sysdba
输入:ALTER USER DBSNMP ACCOUNT UNLOCK;
注:由于刚才解锁的用户名是DBSNMP,所以这里设置的用户名也是DBSNMP
Oracle 数据库 11g 中的 ASM 新特性
http://www.oracle.com/technology/global/cn/products/database/asm/index.html
http://www.oracle.com/technology/products/database/asm/pdf/11gr1%20asm%20new%20features%20wp%2005-2007.pdf
Oracle 11g 管理资料档案库已置于安全模式下, 在此模式下将对 Enterprise Manager 数据进行加密。加密密钥已放置在文件 E:/oracle/product/11.1.0/db_1/169.254.105.73_orcl/sysman/config /emkey.ora 中。请务必备份此文件, 因为如果此文件丢失, 则加密数据将不可用。
全局数据库名:orcl 系统表示符sid:orcl 服务器参数文件名:E:/oracle/product/11.1.0/db_1/database/spfileorcl.ora
查看数据库实例运行情况 : http://localhost:1158/em https://169.254.105.73:1158/em
web方式登录iSQL*Plus name:system pwd:system name:sys pwd:sys 固定虚拟ip:192.168.116.126
Enterprise Manager Database Control URL - (orcl) :  https://Lindows-IBM-XP2:1158/em
http://localhost:5560/isqlplus http://localhost:5560/isqlplus/dba
http://LindowsXP:5560/isqlplus http://LindowsXP:5560/isqlplus/dba
Ultra Search URL: http://localhost:5620/ultrasearch
Ultra Search 管理工具 URL: http://localhost:5620/ultrasearch/admin
Enteprise Manager 10g Database Control URL: http://localhost:5500/em

查询oracle 10g下一些常用的端口

http://jackyrong.javaeye.com/blog/764298

可以在 /oracle/product/10.2.0/db_1/install/下,它下有一个文件portlist.ini 里面有常见的端口,并可以设置:
Ultra Search HTTP 端口号 =5620
Enterprise Manager Agent Port =
iSQL*Plus HTTP 端口号 =5560
Enterprise Manager Console HTTP Port (oracle) = 5500
Enterprise Manager Agent Port (oracle) = 1830
Enterprise Manager Console HTTP Port (ORACLE) = 5501
Enterprise Manager Agent Port (ORACLE) = 1830


http://www.duote.com/soft/3156.html

http://www.allroundautomations.com
Oracle服务OracleDBConsoleorcl启动失败解决方案
http://oxidy.javaeye.com/blog/237838
OracleDBConsole服务不能启动,访问“http://机器名:1158/em”不能进入EM界面,系统事件查看器里面记录“ Agent process exited abnormally during initialization. ”
网上解决Oracle服务不能启动最多的做法是修改host文件,即%ORACLE HOME%/db_1/NETWORK/ADMIN/listener.ora文件,修改其中的HOST=***,listener.ora文件中的HOST =***与 系统属性--》计算机名选项卡 中显示的“ 完整的计算机名称:dsideal-db ”保持一致,即将***更改为dsideal-db ,重启计算机,再尝试启动OralceDBConsole服务,发现服务能正常启动,故障排除。
listener.ora文件内容如下:
# listener.ora Network Configuration File: C:/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:/oracle/product/10.2.0/db_1 )
      (PROGRAM = extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dsideal-db )(PORT = 1521 ))#完整的计算机名称;端口号
    )
  )
解决Oracle.exe占用内存过大的问题
开始----运行---打开cmd   
输入 net start 察看服务运行列表
net stop OracleServiceORCL 停止ORACLE服务
net start OracleServiceORCL 开始ORACLE服务
启动Oracle 10g sqlplus 图形界面: 开始---- 运行----sqlplusw
启动Oracle 10g sqlplus dos 界面: 开始---- 运行----sqlplus
解决ServerDB(UTF-8)与ClientDB(GBK)之间的字符集不统一的问题:
开始----运行---打开regedit
查找 HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1
数值名称(N) NLS_LANG 
数值数据(V) SIMPLIFIED CHINESE_CHINA.ZHS16GBK
--查询nls的参数,获得数据库服务器端的字符编码
1。select * from v$nls_parameters
NLS_LANGUAGE
NLS_CHARACTERSET
2。修改本地环境变量,设置
NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK //这个是我们的数据库字符编码
NLS_LANG = language_territory.charset
有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
charset 指定字符集
范例:
c:>   set   nls_lang=simplified   chinese_china.zhs16gbk
oracle 10G 12154问题解决
http://blog.csdn.net/liuya1985liuya/archive/2007/09/25/1800188.aspx
Oracle 10 g .bat文件启动/关闭方法
文件:net start oracle.bat
内容:
net start OracleOraDb10g_home1TNSListener
net start OracleServiceMYORACLE
net start OracleDBConsolemyoracle
net start OracleJobSchedulerMYORACLE
net start OracleOraDb10g_home1iSQL*Plus
文件:net stop oracle.bat
内容:
net stop OracleOraDb10g_home1TNSListener
net stop OracleServiceMYORACLE
net stop OracleDBConsolemyoracle
net stop OracleJobSchedulerMYORACLE
net stop OracleOraDb10g_home1iSQL*Plus
Exception:
  0RA-01034 :   Oracle   not   available. 
  0RA-27101 :   Shared   memory   realm   does   not   exists.
表空间太小也可能造成数据库连不上,Oracle10g增加SGA_TARGET ,PGA_AGGREGATE_TARGET 语法对付表空间问题, 如果是Oracle8i运行sqlplus,用system登陆,然后键入:startup  mount //启动数据库
Oracle 10g system && sysaux 姊妹表空间
system 数据库打开后,一定不能被offline,而sysaux表空间offline后则部分功能失效。
Oracle提供了缺省数据表空间的概念,即使用户不指定,Oracle也不会将用户数据存放在SYSTEM表空间,
Oracle还将一些无关紧要的系统数据分离到SYSAUX表空间,以使得SYSTEM表空间纯净化。。。。。。。
Oracle双机热备
http://windows2008.blog.51cto.com/
Oracle 11g 冷备份
开始----运行----sqlplus>>>>用户名:SQL>system as sysdba 密码:system
Oracle 导入导出功能
http://huihui2525.javaeye.com/blog/128568
http://elstage.javaeye.com/blog/262283
查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
  exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST   file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y  file=file= d:datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST   file=d:daochu.dmp  tables=(table1)
1.导出:
$exp usename/password@orcl
Enter array fetch buffer size: 4096 > 回车
Export file: expdat.dmp >d:/ m.dmp  生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 回车
Export table data (yes/no): yes > 回车
Compress extents (yes/no): yes > 回车
2.导入:
imp scott/tiger@ccf  fromuser=username touser=username file=D:/m.dmp log=D:/yingji.log
导出:
-- 使用pl/sql developer工具导出用户数据表结构
tools->export  user  objects.
-- 将会导一个只有空表的DMP
exp  user/pwd  file=d:/xx.dmp  rows=no;
-- 建表语句在a.log里面,sqlserver不支持varchar2数据类型
exp   system/manager   file=c:/a.dmp   owner=scott   log=c:/a.log
imp   system/manager   file=c:/a.dmp   owner=scott   log=c:/a.log
--
exp file=sapdb0417.dmp userid=euser/euser@sapdb full=y
导入:
imp file=suning2.dmp userid=suning_b2c_user/arvato@btcsu full=y
Oracle shutdown的幾種方式
http://blog.itpub.net/post/48/25561
1、shutdown normal
   正常方式关闭数据库。
2、shutdown immediate
   立即方式关闭数据库。
   在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
   而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
   当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 
3、shutdown abort
   直接关闭数据库,正在访问数据库的会话会被突然终止,
   如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长時間
--------------------------------------------------------
shutdown abort 的时候,跟kill 进程是一样的效果
数据库立即关闭,这个时候文件状态可能不一致
因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复
若检查点信息一致,则做崩溃恢复
若检查点信息不一致(正好在更新文件头)则需要做介质恢复
这些问题都好处理,最怕的问题是这个时候系统有大量IO,结果这样造成写的突然中断,碰巧造成文件块的逻辑坏块,那麻烦比较大一些,尤其是系统表空间的block损坏
虽然shutdown abort 出错的几率很小,1000个人可能只有一个人碰到,但是我们还是要小心。
正确的处理流程是,shutdown immediate ,若数据库迟迟不能down下来,在os上观察IO状况,几乎没有io的时候,另开一窗口shutdown  abort ,几乎不会出问题了
--------------------------------------------------------
http://www.itpub.net/showthread.php?threadid=180315&pagenumber =
先用IMMEDIATE来DOWN,实在不行了,看一下数据库文件上没IO了,再用ABORT
------------------------------------------------------------------------------
你可以尝试先在系统级杀掉非后台Oracle进程,在连接shutdown immediate就安全多了
在Oracle8i里,当数据库失去响应以后,你在操作系统上杀掉用户进程后,一般数据库就可以恢复正常了
-------------------------------------------------------------------------------
先 shutdown immediate 应该是首选
然后不行再重新shutdown abort
其实起不来也是因为os的缘故,在文件正在写的时候出现问题导致文件不一致或者损坏……
--查询数据文件位置
select name from v$datafile;
select file_name,status from dba_data_files;
E:/ORACLE/ORADATA/ORCL/SYSTEM01.DBF
E:/ORACLE/ORADATA/ORCL/SYSAUX01.DBF
E:/ORACLE/ORADATA/ORCL/UNDOTBS01.DBF
E:/ORACLE/ORADATA/ORCL/USERS01.DBF
E:/ORACLE/ORADATA/ORCL/EXAMPLE01.DBF
--查询控制文件位置
select * from v$controlfile;
select name from v$controlfile;
E:/ORACLE/ORADATA/ORCL/CONTROL01.CTL
E:/ORACLE/ORADATA/ORCL/CONTROL02.CTL
E:/ORACLE/ORADATA/ORCL/CONTROL03.CTL
--查询重做日志文件位置
select * from v$log;
select * from v$logfile;
select member from v$logfile order by group#;
E:/ORACLE/ORADATA/ORCL/REDO01.LOG
E:/ORACLE/ORADATA/ORCL/REDO02.LOG
E:/ORACLE/ORADATA/ORCL/REDO03.LOG
--关闭数据库进行物理备份
--SQL>shutdown immediate;
--拷贝刚查询的数据文件、控制文件、重做日志文件到其他地方以备用
--拷贝E:/oracle/product/11.1.0/db_1/database里所有文件到其它盘
--拷贝完成
--SQL>startup
--ok
--查询系统参数
select * from v$parameter;
select tablespace_name, count(*) from dba_free_space group by tablespace_name;
SELECT tablespace_name,count(*)chunks,max(bytes/1024/1024) max_chunk
FROM dba_free_space
GROUP BY tablespace_name;
--查询当前会话
SELECT sid,serial#,username,program,machine,status FROM v$session;
--查询表空间状态
--http://www.51cto.com/specbook/301/47525.htm
select * from dba_tablespaces;
select tablespace_name,status from dba_tablespaces;
Oracle数据库日常维护
http://my.donews.com/oracle/2006/08/18/oracle%e6%95%b0%e6%8d%ae%e5%ba%93%e6%97%a5%e5%b8%b8%e7%bb%b4%e6%8a%a4-dba/
在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。
使系统暂时不产生Redo log
方法一:
>sqlplus /nolog
sql>connect sys/***** as sysdba;
     (*****为sys密码,安装时若没修改默认的是change_on_install)
sql>shutdown immediate
sql>startup mount
sql>alter database noarchivelog
sql>alter database open
Oracle 常用SQL查询列表
http://www.weixiuwang.com/Article/server/tech/200610/22256.html
Oracle Warehouse Builder 11g 第 1 版使用
http://www.oracle.com/technology/global/cn/obe/11gr1_owb/owb11g_update_getting_started_intro/lesson1/less1_start.htm
OCP DBA1学习笔记
http://bbs.chinaunix.net/thread-852976-1-1.html
[04/11] [Oracle管理]9I 笔记 (ZT)
http://lyt5664681.blog.163.com/blog/
新一篇: Oracle数据库的导出和导入
http://blog.csdn.net/gonghb/archive/2007/10/31/1859868.aspx
oracle管理SQL查询.doc
http://www.itpub.net/attachment.php?aid=531311
----------------------------------------------------------------------------------------------------------------------------------
传智播客_ORACLE经典视频教程 学习记录
http://hi.baidu.com/vjame/blog/item/89130eb3c30c4fa1d9335a14.html 
Oracle 创建用户
http://gaoran2008.javaeye.com/blog/182798
create user 你的用户名identified by 密码;  grant connect,resource,dba to 连接的数据库;commit;
sqlplus lanjh/lanjh
disconn lanjh;
conn lanjh;
如何做bat一个简单的自动循环备份的功能
http://www.itpub.net/viewthread.php?tid=1097384
----------------------------------------------------------------------------------------------------------------------------------
Oracle自动启动和关闭的方法 数据库关闭  dbshut  数据库启动 dbtart
http://hi.baidu.com/luckyang999/blog/item/832f0f238d418f4

 

 

Oracle EBS 技术顾问常用的PL/SQL工具

由于Oracle提供的SQL*Plus只是一个命令行工具,并不是一个IDE工具,因此在实际的开发中需要相关的工具替代,目前技术顾问们使用最多的PL/SQL编程IDE工具主要有以下几个:

 

1,PL/SQL Developer(Allround Automations)

Allround Automations公司的PL/SQL Developer是专注于Oracle Database存储过程的开发的集成环境。PL/SQL Developer做的比较小巧灵活,它是一个“程序员化”的IDE工具,因此很多PL/SQL技术开发人员很喜欢使用它进行程序开发调试,从我了解的情况看,很多技术顾问用的就是它。

PL/SQL Developer是一个有偿使用工具,详细信息可以从它们的官方网站了解

 

2,Toad for Oracle(Quest)

Quest公司的Toad和Allround Automations公司的PL/SQL Developer虽然都属于PL/SQL的集成开发工具,但是Toad和走的是另外一条路,提供更多的数据库管理能力,因此很多简单的功能都进行了可视化,是一个高度“可视化”的工具,因此对于技术人员来说反而很笨重的感觉,影响了一个熟练技术人员的效率。

但是Toad对于一个咨询顾问,偶尔需要查询一下数据库相关的东西比较适合,不需要编写代码,可以通过一些可视化的菜单和按钮来实现。

正因为Toad更偏向于数据库管理,因此它具备了很多PL/SQL Developer工具所不具备的辅助工具。因此我称Toad为“DBA化”的IDE工具。

Toad也是一个付费工具,更多信息请看

 

3,SQL Developer(Oracle)

Oracle公司在出现SQL Developer工具之前,一直没有可视化的IDE工具,只有一个命令行工具SQL*Plus,而2006年Oracle基于JDeveloper IDE架构开发了SQL Developer工具,Oracle的说法是SQL*Plus的IDE版本。

SQL Developer由于刚起步,从目前的发展来看,它主要提供开发和DBA功能的一个工具。同时它不但支持Oracle Database,还支持SQLServer、MySQL、Access等数据库的开发。

从目前来看,Oracle投入大量精力来开发SQL Developer,使它的功能越来越强大,且版本的更新很快,加上它是免费试用的工具。所以大有取代其它很多PL/SQL IDE工具的势头。

更多信息请访问Oracle SQL Developer的官方主页

 

 

个人经验

新建数据库时,总是无法找到http://zhangshibang:5505/em,其中原名称是含域名的,不是这个,造成无法建表和设置用户等

原因,本人的机器以前是加入域的,可在用户处是没有域信息的,故老是错误,从域中离开,再新建立的数据库就是上面的名称了,用的的机器名,呵呵,可以显示了。

 

你可能感兴趣的:(oracle,sql,数据库,manager,database,工具)