db oracle dba知识整理

    技术2025-03-29  15

    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代码 begin  dbms_output.enable(1000000);   for i in 0..10000 loop   dbms_output.put_line(SQLERRM(0-i));   end loop;   dbms_output.disable();   dbms_output.enable(1000000);   for i in 10001..20000 loop   dbms_output.put_line(SQLERRM(0-i));   end loop;   end; /   begin dbms_output.enable(1000000); for i in 0..10000 loop dbms_output.put_line(SQLERRM(0-i)); end loop; dbms_output.disable(); dbms_output.enable(1000000); for i in 10001..20000 loop dbms_output.put_line(SQLERRM(0-i)); end loop; end; / //192.168.129.21/ [root@snweb1 ~]#cd /app/oracle/product/10.2.0/db_1 [oracle@snweb1 ~]$ vi /home/oracle/.bash_profile Sql代码 ORACLE_BASE=/app/oracle   ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1/   ORACLE_SID=snpdb   export ORACLE_BASE   export ORACLE_HOME   export ORACLE_SID   PATH=$PATH:$ORACLE_HOME/bin   export PATH   ORACLE_BASE=/app/oracle ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1/ ORACLE_SID=snpdb export ORACLE_BASE export ORACLE_HOME export ORACLE_SID PATH=$PATH:$ORACLE_HOME/bin 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 Query2、加快standby数据库备份的速度3、Snapshot Standby4、提高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上安装ORACLE11ghttp://www.lupaworld.com/viewthread_31337.htmlhttp://www.lupaworld.com/bbs/attachment.php?aid=6390Oracle_FAQ.chmhttp://techbbs.enet.com.cn/attachment.php?aid=1172http://www.oracle.com/technology/documentation/database11gR1.htmlOracle 启动和关闭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安装完成后的初始口令默认帐号应该是sysdbainternal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_tempId:sys as sysdba Pwd:sys Id:sys as sysoper Pwd:sysOracle安装完成后的修改口令internal/oracle sys/sys system/system scott/tiger sysman/orcl dbsnmp/orcl自动重新安装,忘记密码解决方法:开始----运行----打开 sqlplusw用户名:sqlplus as sysdba输入:ALTER USER DBSNMP ACCOUNT UNLOCK;注:由于刚才解锁的用户名是DBSNMP,所以这里设置的用户名也是DBSNMPOracle 数据库 11g 中的 ASM 新特性http://www.oracle.com/technology/global/cn/products/database/asm/index.htmlhttp://www.oracle.com/technology/products/database/asm/pdf/11gr1%20asm%20new%20features%20wp%2005-2007.pdfOracle 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/emweb方式登录iSQL*Plus name:system pwd:system name:sys pwd:sys 固定虚拟ip:192.168.116.126Enterprise Manager Database Control URL - (orcl) :  https://Lindows-IBM-XP2:1158/emhttp://localhost:5560/isqlplus http://localhost:5560/isqlplus/dbahttp://LindowsXP:5560/isqlplus http://LindowsXP:5560/isqlplus/dbaUltra Search URL: http://localhost:5620/ultrasearchUltra Search 管理工具 URL: http://localhost:5620/ultrasearch/adminEnteprise 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.comOracle服务OracleDBConsoleorcl启动失败解决方案http://oxidy.javaeye.com/blog/237838OracleDBConsole服务不能启动,访问“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_LANGUAGENLS_CHARACTERSET2。修改本地环境变量,设置NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK //这个是我们的数据库字符编码NLS_LANG = language_territory.charset有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。territory 指定服务器的日期和数字格式。charset 指定字符集范例:c:>   set   nls_lang=simplified   chinese_china.zhs16gbkoracle 10G 12154问题解决http://blog.csdn.net/liuya1985liuya/archive/2007/09/25/1800188.aspxOracle 10 g .bat文件启动/关闭方法文件:net start oracle.bat内容:net start OracleOraDb10g_home1TNSListenernet start OracleServiceMYORACLEnet start OracleDBConsolemyoraclenet start OracleJobSchedulerMYORACLEnet start OracleOraDb10g_home1iSQL*Plus文件:net stop oracle.bat内容:net stop OracleOraDb10g_home1TNSListenernet stop OracleServiceMYORACLEnet stop OracleDBConsolemyoraclenet stop OracleJobSchedulerMYORACLEnet stop OracleOraDb10g_home1iSQL*PlusException:  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 密码:systemOracle 导入导出功能http://huihui2525.javaeye.com/blog/128568http://elstage.javaeye.com/blog/262283查看表空间的名称及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;查看表空间物理文件的名称及大小select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中exp system/manager@TEST file=d:daochu.dmp full=y2 将数据库中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.dmpimp 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@orclEnter 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.-- 将会导一个只有空表的DMPexp  user/pwd  file=d:/xx.dmp  rows=no;-- 建表语句在a.log里面,sqlserver不支持varchar2数据类型exp   system/manager   file=c:/a.dmp   owner=scott   log=c:/a.logimp   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=yOracle shutdown的幾種方式http://blog.itpub.net/post/48/255611、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.DBFE:/ORACLE/ORADATA/ORCL/SYSAUX01.DBFE:/ORACLE/ORADATA/ORCL/UNDOTBS01.DBFE:/ORACLE/ORADATA/ORCL/USERS01.DBFE:/ORACLE/ORADATA/ORCL/EXAMPLE01.DBF--查询控制文件位置select * from v$controlfile;select name from v$controlfile;E:/ORACLE/ORADATA/ORCL/CONTROL01.CTLE:/ORACLE/ORADATA/ORCL/CONTROL02.CTLE:/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.LOGE:/ORACLE/ORADATA/ORCL/REDO02.LOGE:/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_chunkFROM dba_free_spaceGROUP BY tablespace_name;--查询当前会话SELECT sid,serial#,username,program,machine,status FROM v$session;--查询表空间状态--http://www.51cto.com/specbook/301/47525.htmselect * 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 /nologsql>connect sys/***** as sysdba;     (*****为sys密码,安装时若没修改默认的是change_on_install)sql>shutdown immediatesql>startup mountsql>alter database noarchivelogsql>alter database openOracle 常用SQL查询列表http://www.weixiuwang.com/Article/server/tech/200610/22256.htmlOracle Warehouse Builder 11g 第 1 版使用http://www.oracle.com/technology/global/cn/obe/11gr1_owb/owb11g_update_getting_started_intro/lesson1/less1_start.htmOCP 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.aspxoracle管理SQL查询.dochttp://www.itpub.net/attachment.php?aid=531311----------------------------------------------------------------------------------------------------------------------------------传智播客_ORACLE经典视频教程 学习记录http://hi.baidu.com/vjame/blog/item/89130eb3c30c4fa1d9335a14.html  Oracle 创建用户http://gaoran2008.javaeye.com/blog/182798create user 你的用户名identified by 密码;  grant connect,resource,dba to 连接的数据库;commit;sqlplus lanjh/lanjhdisconn lanjh;conn lanjh;如何做bat一个简单的自动循环备份的功能http://www.itpub.net/viewthread.php?tid=1097384----------------------------------------------------------------------------------------------------------------------------------Oracle自动启动和关闭的方法 数据库关闭  dbshut  数据库启动 dbtarthttp://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,其中原名称是含域名的,不是这个,造成无法建表和设置用户等

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

     

    最新回复(0)