DBMS_STATS.GATHER_TABLE_STATS详解

由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要!

作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数、数据块数、行长等信息;列的分析–列值的重复数、列上的空值、数据在列上的分布情况;索引的分析-索引页块的数量、索引的深度、索引聚合因子).
DBMS_STATS.GATHER_TABLE_STATS的语法如下:

DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2,  tabname VARCHAR2,  partname VARCHAR2, estimate_percent NUMBER,  block_sample BOOLEAN, method_opt VARCHAR2, degree NUMBER, granularity VARCHAR2,  cascade BOOLEAN, stattab VARCHAR2,  statid VARCHAR2, statown VARCHAR2, no_invalidate BOOLEAN, force BOOLEAN);

参数说明:

ownname:要分析表的拥有者

tabname:要分析的表名.

partname:分区的名字,只对分区表或分区索引有用.

estimate_percent:采样行的百分比,取值范围[0.000001,100],null为全部分析,不采样. 常量:DBMS_STATS.AUTO_SAMPLE_SIZE是默认值,由oracle决定最佳取采样值.

block_sapmple:是否用块采样代替行采样.

method_opt:决定histograms信息是怎样被统计的.method_opt的取值如下(默认值为FOR ALL COLUMNS SIZE AUTO):

for all columns:统计所有列的histograms.

for all indexed columns:统计所有indexed列的histograms.

for all hidden columns:统计你看不到列的histograms

for columns SIZE | REPEAT | AUTO | SKEWONLY:统计指定列的histograms.N的取值范围[1,254]; REPEAT上次统计过的histograms;AUTO由oracle决定N的大小;SKEWONLY multiple end-points with the same value which is what we define by “there is skew in thedata

degree:决定并行度.默认值为null.

granularity:Granularity of statistics to collect ,only pertinent if the table is partitioned.

cascade:是收集索引的信息.默认为FALSE.

stattab:指定要存储统计信息的表,statid如果多个表的统计信息存储在同一个stattab中用于进行区分.statown存储统计信息表的拥有者.以上三个参数若不指定,统计信息会直接更新到数据字典.

no_invalidate: Does not invalidate the dependent cursors if set to TRUE. The procedure invalidates the dependent cursors immediately if set to FALSE.

force:即使表锁住了也收集统计信息.

例子:

execute dbms_stats.gather_table_stats(ownname => 'owner',tabname => 'table_name' ,estimate_percent => null ,method_opt => 'for all indexed columns' ,cascade => true);

------------------------------------------------------------------------------------------------------------------------

自从Oracle8.1.5引入dbms_stats包,Experts们便推荐使用dbms_stats取代analyze。 理由如下
dbms_stats可以并行分析
dbms_stats有自动分析的功能(alter table monitor )
analyze 分析统计信息的不准确some times
1,2好理解,且第2点实际上在VLDB中是最吸引人的;3以前比较模糊,看了metalink236935.1 解释,analyze在分析Partition表的时候,有时候会计算出不准确的Global statistics .
原因是,dbms_stats会实在的去分析表全局统计信息(当指定参数);而analyze是将表分区(局部)的statistics 汇总计算成表全局statistics ,可能导致误差。
如果想分析整个用户或数据库,还可以采用工具包,可以并行分析
Dbms_utility(8i以前的工具包)
Dbms_stats(8i以后提供的工具包)
如

dbms_stats.gather_schema_stats(User,estimate_percent=>100,cascade=> TRUE);
dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);

如何使用dbms_stats分析统计信息

--创建统计信息历史保留表

sql>execdbms_stats.create_stat_table(ownname=>'scott',stattab=>'stat_table');

--导出整个scheme的统计信息

sql>execdbms_stats.export_schema_stats(ownname=>'scott',stattab=>'stat_table');

--分析scheme

Execdbms_stats.gather_schema_stats(
ownname=>'scott',
options=>'GATHERAUTO',
estimate_percent=>dbms_stats.auto_sample_size,
method_opt=>'forallindexedcolumns',
degree=>6)

--分析表

sql>execdbms_stats.gather_table_stats(ownname=>'scott',tabname=>'work_list',estimate_percent=>10,method_opt=>'forallindexedcolumns');

--分析索引

SQL>execdbms_stats.gather_index_stats(ownname=>'crm2',indname=>'IDX_ADM_PERMISSION_PID_MID',estimate_percent=>'10',degree=>'4');

--如果发现执行计划走错,删除表的统计信息

SQL>dbms_stats.delete_table_stats(ownname=>'scott',tabname=>'work_list');

--导入表的历史统计信息

sql>execdbms_stats.import_table_stats(ownname=>'scott',tabname=>'work_list',stattab=>'stat_table');

--如果进行分析后,大部分表的执行计划都走错,需要导回整个scheme的统计信息

sql>execdbms_stats.import_schema_stats(ownname=>'scott',stattab=>'stat_table');

--导入索引的统计信息

SQL>execdbms_stats.import_index_stats(ownname=>'crm2',indname=>'IDX_ADM_PERMISSION_PID_MID',stattab=>'stat_table')

--检查是否导入成功

SQL>selecttable_name,num_rows,a.blocks,a.last_analyzedfromall_tablesawherea.table_name='WORK_LIST';

分析数据库(包括所有的用户对象和系统对象):gather_database_stats
分析用户所有的对象(包括表、索引、簇):gather_schema_stats
分析表:gather_table_stats
分析索引:gather_index_stats
删除数据库统计信息:delete_database_stats
删除用户方案统计信息:delete_schema_stats
删除表统计信息:delete_table_stats
删除索引统计信息:delete_index_stats
删除列统计信息:delete_column_stats
设置表统计信息:set_table_stats
设置索引统计信息:set_index_stats
设置列统计信息:set_column_stats

可以查看表 DBA_TABLES来查看表是否与被分析过,如:

SELECT TABLE_NAME, LAST_ANALYZED FROM DBA_TABLES

这是对命令与工具包的一些总结
1、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。
a) 可以并行进行,对多个用户,多个Table
b) 可以得到整个分区表的数据和单个分区的数据。
c) 可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区
d) 可以倒出统计信息
e) 可以用户自动收集统计信息
2、DBMS_STATS的缺点
a) 不能Validate Structure
b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,这两个仍旧需要使用Analyze语句。
c) DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True
3、对于oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS来收集信息。

使用oradebug来获取跟踪文件的位置

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 – Production on 星期五 11月 30 11:18:00 2012

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn sys/system@jytest as sysdba
已连接。
SQL> oradebug setmypid
已处理的语句
SQL> alter database backup controlfile to trace;

数据库已更改。

SQL> oradebug tracefile_name
/u01/app/oracle/admin/jytest/udump/jytest_ora_27695.trc

oracle10g data guard创建物理standby数据库的例子

data guard主备数据库是在不现的机器上

主数据库的db_name=jytest db_unique_name=jytest

备份数据库db_name=jytest db_unique_name=jyrac1

演示用的示例足够了,我们分两阶段配置,分别是配置primary数据库和配置standby数据库,如下:

一、Primary

数据库配置及相关操作

1、确认主库处于归档模式

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/app/oracle/arch/jytest

Oldest online log sequence     124

Next log sequence to archive   126

Current log sequence           126

2、将primary数据库置为FORCE LOGGING模式。通过下列语句:

SQL> alter database force  logging;

数据库已更改。

3、创建standby数据库控制文件

SQL> alter database create standby controlfile as  '/u01/app/oracle/jyrac1_01.ctl';

 

Database altered.

 

4、创建primary数据库客户端初始化参数文件

注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile重建spfile,你当

然也可以通过alter system set命令直接修改spfile内容。

SQL> create pfile from spfile;

文件已创建。

将该初始化参数文件复制一份,做为standby数据库的客户端初始化参数文件

SQL> host copy /u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora

/u01/app/oracle/product/10.2.0/db/dbs/initjytest01.ora

已复制1个文件。

修改客户端初始化参数文件,增加下列内容

DB_UNIQUE_NAME='jytest'

 

LOG_ARCHIVE_CONFIG='DG_CONFIG=(jytest,jyrac1)'

 

LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/jytest VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jytest'

 

LOG_ARCHIVE_DEST_2='SERVICE=jyrac1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jyrac1'

 

LOG_ARCHIVE_DEST_STATE_1='ENABLE'

 

LOG_ARCHIVE_DEST_STATE_2='ENABLE'

 

REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'

#--------配置standby角色的参数用于角色转换

FAL_CLIENT='jytest'

FAL_SERVER='jyrac1'

DB_FILE_NAME_CONVERT=/u01/app/oracle/oradata/jytest','/u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库文件的路径名和文件名位置。这

个参数将主数据库的数据文件路径名转换成备数据文件路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。注意这个参数只是用于转换物理备数据库的路径名。这

个参数可以指定多对路径。(我这里主备数据库目录路径相同也可以不配置)

LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/jytest',' /u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库联机重做日志文件的位置。这个

参数将主数据库日志文件的路径名转换成备数据库上的路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。这个参数可以指定多对路径(我这里主备数据库目录路径相同也可以不配置)

STANDBY_FILE_MANAGEMENT='AUTO'

通过pfile重建spfile

SQL> shutdown immediate

...

SQL> create spfile from pfile

文件已创建。

5、复制数据文件到standby服务器(方式多样,不详述)

将adump,bdump,cdump,dpdump,pfile,udump目录复制到weblogic29机器上来

[root@weblogic28 ~]# scp -r /u01/app/oracle/admin/* root@10.138.130.29:/u01/app/oracle/admin

root@10.138.130.29's password:

将数据文件,控制文件和重做日志文件复制到weblogic29这台机器上

[root@weblogic28 ~]# scp -r /u01/app/oracle/oradata/* root@10.138.130.29:/u01/app/oracle/oradata

root@10.138.130.29's password:

redo07a.log                                   100%   50MB  25.0MB/s   00:02

hygeia01.dbf                                  100%   20GB  42.9MB/s   07:57

redo04a.log                                   100%   50MB  50.0MB/s   00:01

control02.ctl                                 100% 6896KB   6.7MB/s   00:00

temp01.dbf                                    100% 5120MB  43.4MB/s   01:58

redo06b.log                                   100%   50MB  25.0MB/s   00:02

users01.dbf                                   100% 5128KB   5.0MB/s   00:00

control03.ctl                                 100% 6896KB   6.7MB/s   00:00

redo06a.log                                   100%   50MB  25.0MB/s   00:02

control01.ctl                                 100% 6896KB   6.7MB/s   00:00

redo05a.log                                   100%   50MB  50.0MB/s   00:01

redo07b.log                                   100%   50MB  50.0MB/s   00:01

redo05b.log                                   100%   50MB  50.0MB/s   00:01

sysaux01.dbf                                  100% 5120MB  43.0MB/s   01:59

redo04b.log                                   100%   50MB  50.0MB/s   00:01

redo01.log                                    100%   50MB  50.0MB/s   00:01

redo03.log                                    100%   50MB  25.0MB/s   00:02

redo02.log                                    100%   50MB  50.0MB/s   00:01

system01.dbf                                  100% 5120MB  41.0MB/s   02:05

undotbs01.dbf                                 100% 5120MB  34.1MB/s   02:30

还要将参数文件和口令文件复制过来

[root@weblogic28 ~]# scp -r /u01/app/oracle/product/10.2.0/db/dbs/* root@10.138.130.29:/u01/app/oracle/product/10.2.0/db/dbs

root@10.138.130.29’s password:

alert_jytest.log 100% 435 0.4KB/s 00:00

hc_jytest.dat 100% 1552 1.5KB/s 00:00

initdw.ora 100% 13KB 12.6KB/s 00:00

initjytest.ora 100% 1753 1.7KB/s 00:00

init.ora 100% 8385 8.2KB/s 00:00

lkJYTEST 100% 24 0.0KB/s 00:00

orapwjytest 100% 1536 1.5KB/s 00:00

spfilejytest.ora 100% 4608 4.5KB/s 00:00

注意需要复制所有数据文件,备份的控制文件及客户端初始化参数文件

6、配置listener及net service names(方式多样,不详述)。

分别在主数据库和备份数据库上进行配置

Jytest主数据库(weblogic28)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME =jytest)

(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)

(SID_NAME =jytest)

)

)

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = weblogic28)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

 

Jyrac1备份数据库(weblogic29)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME =jytest)

(ORACLE_HOME =/u01/app/oracle/product/10.2.0/db)

(SID_NAME =jytest)

)

)

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = weblogic29)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

 

在tnsnames.ora文件加入主数据库和备份数据库的服务名

jytest =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.138.130.28)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = jytest)

)

)

 

jyrac1 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.138.130.29)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME =jytest)

)

)

完之后重启listener:

[oracle@weblogic28 ~]$ lsnrctl stop

[oracle@weblogic28 ~]$lsnrctl start

通过tnsping测试tnsnames是否正确有效:

C:\Documents and Settings\Administrator>tnsping jyrac1

 

TNS Ping Utility for 32-bit Windows: Version10.2.0.1.0 - Production on 01-12月-

2012 21:29:27

 

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

 

已使用的参数文件:

C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora

 

 

已使用TNSNAMES适配器来解析别名

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

(HOST = 10.138.130.29)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =jytest)))

OK (10毫秒)

 

C:\Documents and Settings\Administrator>tnsping jytest

 

TNS Ping Utility for 32-bit Windows: Version10.2.0.1.0 - Production on 01-12月-

2012 21:31:57

 

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

 

已使用的参数文件:

C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora

 

 

已使用TNSNAMES适配器来解析别名

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

(HOST = 10.138.130.28)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =jytest)))

OK (0毫秒)

 

 

二、Standby

数据库配置及相关操作

1、通过ORADIM创建新的OracleService

2、创建密码文件,注意保持sys密码与primary数据库一致。

[oracle@weblogic29 ~]$orapwd file=/u01/app/oracle/product/10.2.0\db\dba\PWDjytest

.ora password=system entries=30

3、创建目录

[root@weblogic28 ~]# mkdir /u01/app/oracle /admin/jytest/adump

4、复制文件,不做过多描述

5、修改初始化参数文件

增加下列参数

db_unique_name=jyrac1

LOG_ARCHIVE_CONFIG='DG_CONFIG=(jytest,jyrac1)'

 

DB_FILE_NAME_CONVERT=/u01/app/oracle/oradata/jytest','/u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库文件的路径名和文件名位置。这

个参数将主数据库的数据文件路径名转换成备数据文件路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。注意这个参数只是用于转换物理备数据库的路径名。这

个参数可以指定多对路径。(我这里主备数据库目录路径相同也可以不配置)

LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/jytest',' /u01/app/oracle/oradata/jytest'

在备位置后面指定主数据库联机重做日志文件的位置。这个

参数将主数据库日志文件的路径名转换成备数据库上的路

径名。如果备数据库与主数据库处于同一系统上或如果数据

文件在备站点上的目录结构与主站点不同,则需要这个参

数。这个参数可以指定多对路径(我这里主备数据库目录路径相同也可以不配置)

LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/arch/jyrac1 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jyrac1'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

#—下列参数用于角色切换

LOG_ARCHIVE_DEST_2='SERVICE=jytest LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jytest'

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

FAL_SERVER=jytest

FAL_CLIENT=jyrac1

STANDBY_FILE_MANAGEMENT=AUTO

注意同时修改*_dest的路径。

通过该pfile创建spfile

SQL> create spfile from pfile;

文件已创建。

6、启动standby到mount

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 6442450944 bytes

Fixed Size                  2030368 bytes

Variable Size            1090520288 bytes

Database Buffers         5335154688 bytes

Redo Buffers               14745600 bytes

Database mounted.

7、启动redo应用

SQL>  alter database recover managed standby database disconnect from session;

 

Database altered.

8、查看同步情况

首先连接到primary数据库

SQL> show parameter db_unique

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_unique_name                       string     jytest

 

SQL> alter system switch logfile;

 

System altered

 

SQL> select max(sequence#) from v$archived_log;

 

MAX(SEQUENCE#)

--------------

129

 

连接到standby数据库

SQL> show parameter db_unique

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_unique_name                       string      jyrac1

SQL> select max(sequence#) from v$archived_log;

 

MAX(SEQUENCE#)

--------------

129

将数据库从一台机器复制到另一台机器上

将adump,bdump,cdump,dpdump,pfile,udump目录复制到weblogic29机器上来

[root@weblogic28 ~]# scp -r /u01/app/oracle/admin/* root@10.138.130.29:/u01/app/oracle/admin
root@10.138.130.29's password:
init.ora.10282012165755                       100% 2508     2.5KB/s   00:00
jytest_ora_4650.trc                           100%  623     0.6KB/s   00:00
jytest_ora_2871.trc                           100% 1196     1.2KB/s   00:00
jytest_ora_5148.trc                           100% 5584     5.5KB/s   00:00
jytest_ora_2844.trc                           100%  623     0.6KB/s   00:00
jytest_ora_28167.trc                          100% 7441     7.3KB/s   00:00
jytest_ora_28498.trc                          100%  682     0.7KB/s   00:00
jytest_ora_3013.trc                           100% 2689     2.6KB/s   00:00
jytest_ora_4931.trc                           100%  680     0.7KB/s   00:00
jytest_ora_4722.trc                           100% 5585     5.5KB/s   00:00
jytest_ora_2986.trc                           100%  623     0.6KB/s   00:00
jytest_ora_4682.trc                           100%  680     0.7KB/s   00:00
jytest_ora_4554.trc                           100%  623     0.6KB/s   00:00
jytest_ora_4584.trc                           100%  680     0.7KB/s   00:00
jytest_ora_4685.trc                           100%  867     0.9KB/s   00:00
jytest_ora_4586.trc                           100%  867     0.9KB/s   00:00
jytest_ora_29312.trc                          100% 2420     2.4KB/s   00:00
jytest_ora_4901.trc                           100%  623     0.6KB/s   00:00
jytest_ora_27695.trc                          100% 6482     6.3KB/s   00:00
jytest_ora_28454.trc                          100%  707     0.7KB/s   00:00
jytest_ora_8595.trc                           100% 5587     5.5KB/s   00:00
jytest_ora_3068.trc                           100%  623     0.6KB/s   00:00
jytest_ora_3098.trc                           100%  680     0.7KB/s   00:00
jytest_ora_28499.trc                          100% 4070     4.0KB/s   00:00
jytest_ora_2952.trc                           100%  623     0.6KB/s   00:00
jytest_ora_3057.trc                           100%  809     0.8KB/s   00:00
jytest_ora_29281.trc                          100%  625     0.6KB/s   00:00
jytest_ora_29311.trc                          100%  682     0.7KB/s   00:00
jytest_ora_2985.trc                           100%  939     0.9KB/s   00:00
jytest_ora_27246.trc                          100%  790     0.8KB/s   00:00
jytest_ora_2808.trc                           100%  623     0.6KB/s   00:00
jytest_ora_3831.trc                           100% 2078     2.0KB/s   00:00
jytest_ora_2841.trc                           100%  939     0.9KB/s   00:00
jytest_ora_28469.trc                          100%  625     0.6KB/s   00:00
ora_4682.aud                                  100%  655     0.6KB/s   00:00
ora_3128.aud                                  100%  643     0.6KB/s   00:00
ora_3113.aud                                  100%  643     0.6KB/s   00:00
ora_23604.aud                                 100%  635     0.6KB/s   00:00
ora_23712.aud                                 100%  656     0.6KB/s   00:00
ora_8595.aud                                  100%  654     0.6KB/s   00:00
ora_4650.aud                                  100% 1292     1.3KB/s   00:00
ora_4586.aud                                  100%  785     0.8KB/s   00:00
ora_2986.aud                                  100%  650     0.6KB/s   00:00
ora_2981.aud                                  100%  650     0.6KB/s   00:00
ora_6652.aud                                  100%  654     0.6KB/s   00:00
ora_29275.aud                                 100%  644     0.6KB/s   00:00
ora_3831.aud                                  100%  648     0.6KB/s   00:00
ora_2808.aud                                  100%  650     0.6KB/s   00:00
ora_5146.aud                                  100%  654     0.6KB/s   00:00
ora_4718.aud                                  100%  654     0.6KB/s   00:00
ora_3163.aud                                  100%  643     0.6KB/s   00:00
ora_2844.aud                                  100%  650     0.6KB/s   00:00
ora_28469.aud                                 100% 1296     1.3KB/s   00:00
ora_6654.aud                                  100%  654     0.6KB/s   00:00
ora_2985.aud                                  100%  782     0.8KB/s   00:00
ora_3117.aud                                  100%  643     0.6KB/s   00:00
ora_3099.aud                                  100%  643     0.6KB/s   00:00
ora_3037.aud                                  100%  643     0.6KB/s   00:00
ora_8593.aud                                  100%  654     0.6KB/s   00:00
ora_29311.aud                                 100%  657     0.6KB/s   00:00
ora_29312.aud                                 100%  787     0.8KB/s   00:00
ora_4444.aud                                  100%  780     0.8KB/s   00:00
ora_4218.aud                                  100%  779     0.8KB/s   00:00
ora_27559.aud                                 100%  656     0.6KB/s   00:00
ora_20375.aud                                 100%  635     0.6KB/s   00:00
ora_4346.aud                                  100%  779     0.8KB/s   00:00
ora_26269.aud                                 100%  663     0.7KB/s   00:00
ora_3068.aud                                  100%  650     0.6KB/s   00:00
ora_2837.aud                                  100%  650     0.6KB/s   00:00
ora_4901.aud                                  100% 1292     1.3KB/s   00:00
ora_7427.aud                                  100%  654     0.6KB/s   00:00
ora_2952.aud                                  100%  650     0.6KB/s   00:00
ora_4722.aud                                  100%  654     0.6KB/s   00:00
ora_3026.aud                                  100%  643     0.6KB/s   00:00
ora_3032.aud                                  100%  643     0.6KB/s   00:00
ora_4932.aud                                  100%  648     0.6KB/s   00:00
ora_3031.aud                                  100%  643     0.6KB/s   00:00
ora_4931.aud                                  100%  655     0.6KB/s   00:00
ora_28449.aud                                 100%  637     0.6KB/s   00:00
ora_26271.aud                                 100%  663     0.7KB/s   00:00
ora_2933.aud                                  100%  775     0.8KB/s   00:00
ora_3115.aud                                  100%  643     0.6KB/s   00:00
ora_23714.aud                                 100%  656     0.6KB/s   00:00
ora_28454.aud                                 100%  782     0.8KB/s   00:00
ora_6628.aud                                  100%  654     0.6KB/s   00:00
ora_4296.aud                                  100%  635     0.6KB/s   00:00
ora_4121.aud                                  100%  635     0.6KB/s   00:00
ora_3036.aud                                  100%  643     0.6KB/s   00:00
ora_3127.aud                                  100%  643     0.6KB/s   00:00
ora_3013.aud                                  100%  650     0.6KB/s   00:00
ora_3116.aud                                  100%  643     0.6KB/s   00:00
ora_29281.aud                                 100% 1296     1.3KB/s   00:00
ora_2932.aud                                  100%  643     0.6KB/s   00:00
ora_27246.aud                                 100%  656     0.6KB/s   00:00
ora_2871.aud                                  100%  650     0.6KB/s   00:00
ora_4340.aud                                  100%  635     0.6KB/s   00:00
ora_3172.aud                                  100%  643     0.6KB/s   00:00
ora_28498.aud                                 100%  657     0.6KB/s   00:00
ora_7404.aud                                  100%  654     0.6KB/s   00:00
ora_6630.aud                                  100%  654     0.6KB/s   00:00
ora_5148.aud                                  100%  654     0.6KB/s   00:00
ora_27695.aud                                 100%  656     0.6KB/s   00:00
ora_3098.aud                                  100%  650     0.6KB/s   00:00
ora_4685.aud                                  100%  785     0.8KB/s   00:00
ora_28586.aud                                 100%  656     0.6KB/s   00:00
ora_4584.aud                                  100%  655     0.6KB/s   00:00
ora_3057.aud                                  100%  775     0.8KB/s   00:00
ora_6108.aud                                  100%  654     0.6KB/s   00:00
ora_28499.aud                                 100%  787     0.8KB/s   00:00
ora_3033.aud                                  100%  643     0.6KB/s   00:00
ora_4554.aud                                  100% 1292     1.3KB/s   00:00
ora_28167.aud                                 100%  650     0.6KB/s   00:00
ora_20329.aud                                 100%  635     0.6KB/s   00:00
ora_7767.aud                                  100%  648     0.6KB/s   00:00
ora_2841.aud                                  100%  782     0.8KB/s   00:00
ora_23638.aud                                 100%  635     0.6KB/s   00:00
jytest_arc8_28547.trc                         100%  798     0.8KB/s   00:00
jytest_j002_22070.trc                         100%  748     0.7KB/s   00:00
jytest_p007_28515.trc                         100% 1144     1.1KB/s   00:00
jytest_arcl_5080.trc                          100%  449KB 448.6KB/s   00:00
jytest_arco_5086.trc                          100%  447KB 446.8KB/s   00:00
jytest_arc7_5043.trc                          100%  452KB 451.8KB/s   00:00
jytest_arcj_28569.trc                         100%  749     0.7KB/s   00:00
jytest_j009_25217.trc                         100%  720     0.7KB/s   00:00
jytest_p010_28521.trc                         100% 1144     1.1KB/s   00:00
jytest_arc4_5037.trc                          100%  448KB 448.3KB/s   00:00
jytest_arcm_28575.trc                         100%  717     0.7KB/s   00:00
jytest_arcp_5088.trc                          100%  591KB 591.3KB/s   00:00
jytest_arcp_28581.trc                         100% 1787     1.8KB/s   00:00
jytest_arcc_28555.trc                         100%  758     0.7KB/s   00:00
jytest_arc6_28543.trc                         100%  756     0.7KB/s   00:00
jytest_lgwr_28481.trc                         100% 3934     3.8KB/s   00:00
jytest_arc6_5041.trc                          100%  445KB 444.7KB/s   00:00
jytest_arci_28567.trc                         100%  717     0.7KB/s   00:00
jytest_arc7_28545.trc                         100%  756     0.7KB/s   00:00
jytest_arcr_5092.trc                          100%  451KB 451.4KB/s   00:00
jytest_p002_28505.trc                         100% 1144     1.1KB/s   00:00
jytest_p009_28519.trc                         100% 1144     1.1KB/s   00:00
jytest_p011_28523.trc                         100% 1144     1.1KB/s   00:00
jytest_lgwr_2998.trc                          100%  790     0.8KB/s   00:00
jytest_lgwr_29293.trc                         100%  764     0.8KB/s   00:00
jytest_arc2_28535.trc                         100%  759     0.7KB/s   00:00
jytest_arcn_28577.trc                         100%  717     0.7KB/s   00:00
jytest_arc8_5047.trc                          100%  452KB 452.0KB/s   00:00
jytest_arc1_5031.trc                          100%  451KB 450.8KB/s   00:00
jytest_arc0_5029.trc                          100%  449KB 449.0KB/s   00:00
jytest_p013_28527.trc                         100% 1144     1.1KB/s   00:00
jytest_arc3_5035.trc                          100%  450KB 449.7KB/s   00:00
jytest_lgwr_4664.trc                          100%  762     0.7KB/s   00:00
jytest_arcs_5094.trc                          100%  451KB 451.2KB/s   00:00
jytest_pmon_28471.trc                         100% 4877     4.8KB/s   00:00
jytest_arc5_28541.trc                         100%  728     0.7KB/s   00:00
jytest_arci_5074.trc                          100%  447KB 447.4KB/s   00:00
jytest_arcb_28553.trc                         100%  716     0.7KB/s   00:00
jytest_p006_28513.trc                         100% 1144     1.1KB/s   00:00
jytest_arce_28559.trc                         100% 1533     1.5KB/s   00:00
jytest_p005_28511.trc                         100% 1144     1.1KB/s   00:00
jytest_arc5_5039.trc                          100%  448KB 448.1KB/s   00:00
jytest_arct_5096.trc                          100%  451KB 451.1KB/s   00:00
jytest_pmon_4904.trc                          100% 1594     1.6KB/s   00:00
jytest_arcl_28573.trc                         100%  749     0.7KB/s   00:00
jytest_smon_28485.trc                         100%  679     0.7KB/s   00:00
jytest_j004_23117.trc                         100%  746     0.7KB/s   00:00
jytest_j005_23119.trc                         100%  721     0.7KB/s   00:00
jytest_arcq_28583.trc                         100%  729     0.7KB/s   00:00
jytest_arck_28571.trc                         100%  759     0.7KB/s   00:00
jytest_p014_28529.trc                         100% 1144     1.1KB/s   00:00
jytest_arcr_28585.trc                         100%  718     0.7KB/s   00:00
jytest_lns1_5098.trc                          100% 2085     2.0KB/s   00:00
jytest_arcs_28587.trc                         100%  729     0.7KB/s   00:00
jytest_lgwr_4914.trc                          100% 2094     2.0KB/s   00:00
jytest_p001_28503.trc                         100% 1144     1.1KB/s   00:00
jytest_p012_28525.trc                         100% 1144     1.1KB/s   00:00
jytest_arc3_28537.trc                         100%  770     0.8KB/s   00:00
jytest_arck_5078.trc                          100%  447KB 447.4KB/s   00:00
jytest_arca_28551.trc                         100%  758     0.7KB/s   00:00
jytest_arc1_28533.trc                         100% 1755     1.7KB/s   00:00
jytest_arca_5057.trc                          100%  449KB 448.6KB/s   00:00
jytest_arcc_5062.trc                          100%  450KB 450.0KB/s   00:00
jytest_arcb_5060.trc                          100%  449KB 448.8KB/s   00:00
jytest_arcf_28561.trc                         100% 1518     1.5KB/s   00:00
jytest_arc2_5033.trc                          100%  453KB 453.3KB/s   00:00
jytest_arc4_28539.trc                         100%  801     0.8KB/s   00:00
jytest_pmon_29283.trc                         100% 3682     3.6KB/s   00:00
jytest_j007_24157.trc                         100%  745     0.7KB/s   00:00
jytest_arce_5066.trc                          100%  449KB 449.4KB/s   00:00
jytest_p004_28509.trc                         100% 1144     1.1KB/s   00:00
jytest_arc0_28531.trc                         100%  759     0.7KB/s   00:00
jytest_arcm_5082.trc                          100%  453KB 452.6KB/s   00:00
jytest_arc9_28549.trc                         100%  756     0.7KB/s   00:00
jytest_j008_25215.trc                         100%  748     0.7KB/s   00:00
jytest_arcg_28563.trc                         100%  787     0.8KB/s   00:00
jytest_arcj_5076.trc                          100%  447KB 446.5KB/s   00:00
jytest_pmon_3070.trc                          100% 4645     4.5KB/s   00:00
jytest_p000_28501.trc                         100% 1144     1.1KB/s   00:00
jytest_lns1_29118.trc                         100% 1205     1.2KB/s   00:00
jytest_p003_28507.trc                         100% 1144     1.1KB/s   00:00
jytest_lgwr_4566.trc                          100%  790     0.8KB/s   00:00
jytest_arcg_5070.trc                          100%  448KB 448.4KB/s   00:00
jytest_arcf_5068.trc                          100%  448KB 448.3KB/s   00:00
jytest_j006_24155.trc                         100%  750     0.7KB/s   00:00
jytest_arch_5072.trc                          100%  449KB 449.3KB/s   00:00
jytest_p008_28517.trc                         100% 1144     1.1KB/s   00:00
jytest_arch_28565.trc                         100%  717     0.7KB/s   00:00
jytest_arc9_5049.trc                          100%  451KB 451.2KB/s   00:00
jytest_pmon_4556.trc                          100% 4359     4.3KB/s   00:00
jytest_arcn_5084.trc                          100%  451KB 450.8KB/s   00:00
jytest_pmon_4652.trc                          100% 3677     3.6KB/s   00:00
jytest_arcd_5064.trc                          100%  450KB 449.7KB/s   00:00
jytest_mmnl_4926.trc                          100%   31MB  31.3MB/s   00:01
alert_jytest.log                              100%   31MB  31.2MB/s   00:01
jytest_lgwr_3080.trc                          100%   10KB   9.9KB/s   00:00
jytest_arcd_28557.trc                         100%  758     0.7KB/s   00:00
jytest_arco_28579.trc                         100%  748     0.7KB/s   00:00
jytest_arcq_5090.trc                          100%  448KB 448.0KB/s   00:00

将数据文件,控制文件和重做日志文件复制到weblogic29这台机器上

[root@weblogic28 ~]# scp -r /u01/app/oracle/oradata/* root@10.138.130.29:/u01/app/oracle/oradata
root@10.138.130.29's password:
redo07a.log                                   100%   50MB  25.0MB/s   00:02
hygeia01.dbf                                  100%   20GB  42.9MB/s   07:57
redo04a.log                                   100%   50MB  50.0MB/s   00:01
control02.ctl                                 100% 6896KB   6.7MB/s   00:00
temp01.dbf                                    100% 5120MB  43.4MB/s   01:58
redo06b.log                                   100%   50MB  25.0MB/s   00:02
users01.dbf                                   100% 5128KB   5.0MB/s   00:00
control03.ctl                                 100% 6896KB   6.7MB/s   00:00
redo06a.log                                   100%   50MB  25.0MB/s   00:02
control01.ctl                                 100% 6896KB   6.7MB/s   00:00
redo05a.log                                   100%   50MB  50.0MB/s   00:01
redo07b.log                                   100%   50MB  50.0MB/s   00:01
redo05b.log                                   100%   50MB  50.0MB/s   00:01
sysaux01.dbf                                  100% 5120MB  43.0MB/s   01:59
redo04b.log                                   100%   50MB  50.0MB/s   00:01
redo01.log                                    100%   50MB  50.0MB/s   00:01
redo03.log                                    100%   50MB  25.0MB/s   00:02
redo02.log                                    100%   50MB  50.0MB/s   00:01
system01.dbf                                  100% 5120MB  41.0MB/s   02:05
undotbs01.dbf                                 100% 5120MB  34.1MB/s   02:30

还要将参数文件和口令文件复制过来

[root@weblogic28 ~]# scp -r /u01/app/oracle/product/10.2.0/db/dbs/* root@10.138.130.29:/u01/app/oracle/product/10.2.0/db/dbs
root@10.138.130.29's password:
alert_jytest.log                              100%  435     0.4KB/s   00:00
hc_jytest.dat                                 100% 1552     1.5KB/s   00:00
initdw.ora                                    100%   13KB  12.6KB/s   00:00
initjytest.ora                                100% 1753     1.7KB/s   00:00
init.ora                                      100% 8385     8.2KB/s   00:00
lkJYTEST                                      100%   24     0.0KB/s   00:00
orapwjytest                                   100% 1536     1.5KB/s   00:00
spfilejytest.ora                              100% 4608     4.5KB/s   00:00

修改环境变量

[oracle@weblogic29 ~]$ vi .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

TEMP=/u01/tmp
TMPDIR=/u01/tmp
export TEMP TMPDIR
export LD_ASSUME_KERNEL=2.6.9
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db
export ORA_CRS_HOME=/u01/crs/oracle/product/10.2.0/crs
export ORACLE_SID=jytest
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
".bash_profile" 28L, 772C written
[oracle@weblogic29 ~]$ startup mount

[root@weblogic29 ~]# su - oracle
[oracle@weblogic29 ~]$ export ORACLE_SID=jytest
[oracle@weblogic29 ~]$ export ORACLE_HOME='/u01/app/oracle/product/10.2.0/db/dbs
[oracle@weblogic29 ~]$ echo $ORACLE_SID
jytest
[oracle@weblogic29 ~]$ echo $ORACLE_HOME
='/u01/app/oracle/product/10.2.0/db/dbs
[oracle@weblogic29 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 1 18:33:39 2009

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup mount pfile='/u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora'
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9925SQL>
[root@weblogic28 ~]# chown -R oracle:oinstall /u01/oracle
SQL> startup mount pfile='/u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora'
ORACLE instance started.

Total System Global Area 6442450944 bytes
Fixed Size                  2030368 bytes
Variable Size            1090520288 bytes
Database Buffers         5335154688 bytes
Redo Buffers               14745600 bytes
Database mounted.
SQL> create spfile from pfile;

File created.

SQL> alter database open;

Database altered.

创建data guard备库的instance时,报ORA-09925错误的处理

[root@weblogic29 ~]# su - oracle

[oracle@weblogic29 ~]$ export ORACLE_SID=jytest
[oracle@weblogic29 ~]$ export ORACLE_HOME='/u01/app/oracle/product/10.2.0/db/dbs
[oracle@weblogic29 ~]$ echo $ORACLE_SID
jytest
[oracle@weblogic29 ~]$ echo $ORACLE_HOME
='/u01/app/oracle/product/10.2.0/db/dbs
[oracle@weblogic29 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 1 18:33:39 2009

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup mount pfile='/u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora'
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9925SQL>
[root@weblogic28 ~]# chown -R oracle:oinstall /u01/oracle
SQL> startup mount pfile='/u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora'
ORACLE instance started.

Total System Global Area 6442450944 bytes
Fixed Size                  2030368 bytes
Variable Size            1090520288 bytes
Database Buffers         5335154688 bytes
Redo Buffers               14745600 bytes
Database mounted.
SQL> create spfile from pfile;

File created.

SQL> alter database open;

Database altered.

ora-24324数据库无法关闭

oracle@weblogic28 $sqlplus / as sysdba


SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 30 16:02:32 2012

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

Connected.
SQL> startup nomount;
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown immediate;
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-01089: immediate shutdown in progress - no operations are permitted
SQL> shutdown abort;
ORA-01031: insufficient privileges
SQL> exit
Disconnected
oracle@hostname $sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 30 16:05:57 2012

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

Connected.
SQL> shutdown abort
ORACLE instance shut down.
SQL> exit
Disconnected
oracle@hostname $sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Nov 30 16:06:17 2012

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 595591168 bytes
Fixed Size 2073064 bytes
Variable Size 213913112 bytes
Database Buffers 373293056 bytes
Redo Buffers 6311936 bytes

tns-12560:TNS-00511

今天有个朋友在机器上安装oracle单位实例

启动不了监听报tns-12560:TNS-00511

[oracle@weblogic29 ~]$ lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 28-NOV-2012 17:11:41

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=weblogic29)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused

原因是因为他以前用这台机器作为rac的一节点安装过rac
且在/etc/hosts文件中的配置没有修改,而它配置监听时主机使用的是主机名

10.138.130.29 weblogic29  jyrac1
10.138.130.209 weblogic29  jyrac1-priv
10.138.130.219 weblogic29  jyrac1-vip

10.138.130.28 weblogic28  jyrac2
10.138.130.208 weblogic28  jyrac2-priv
10.138.130.218 weblogic28  jyrac2-vip

后修改为

10.138.130.29    weblogic29      localhost

重新启动监听就行了

[oracle@weblogic29 ~]$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 28-NOV-2012 17:20:19

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/10.2.0/db/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=weblogic29)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=weblogic29)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                28-NOV-2012 17:20:21
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/10.2.0/db/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=weblogic29)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

修改oracle中的用户名和密码

修改底层表 USER$ 更换用户名

1、sqlplus /nolog
2、SQL> conn sys/zzh_2046@rlzy as sysdba 连接到数据库。通常可以用sys用户登陆。
3、SQL> select * from user$; 找到 name为INSUR_RECOVER需要修改的用户的user#。
SQL> select USER#,NAME,PASSWORD  from user$ where name='INSUR_RECOVER';

     USER# NAME                                TYPE# PASSWORD
---------- ------------------------------ ---------- ------------------------------
       124 INSUR_RECOVER                           1 89E995F8B999AF00
4、update user$ set name='INSUR_REDO' where user#=124;
   已更新 1 行。
5、SQL> COMMIT;提交完成。
6、SQL> ALTER SYSTEM CHECKPOINT;
   系统已更改。
7、SQL> ALTER USER INSUR_REDO IDENTIFIED BY "redo";
   此时会提示新用户不存在。
SQL> ALTER USER INSUR_REDO IDENTIFIED BY "redo"
*ERROR 位于第 1 行:ORA-01918: 用户'INSUR_REDO'不存在
8、SQL> ALTER SYSTEM FLUSH SHARED_POOL;
   系统已更改。
9、SQL> ALTER USER INSUR_REDO IDENTIFIED BY "redo";
    用户已更改。
10、测试连接
    SQL> CONN INSUR_REDO/redo@rlzy;
    已连接。
11、SQL> SELECT * FROM TAB;
    查看新用户下是否有原用户的对象,包括表等。
12、SQL> CONN /    AS SYSDBA已连接。
13、SQL> SHOW USER     --查看当前连接用户
    为"SYS"
14、SQL> SHUTDOWN IMMEDIATE   --关闭数据库
    数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。
15、SQL> STARTUP              --启动数据库
        ORACLE 例程已经启动。......数据库装载完毕。数据库已经打开。
16、可以看出没有再恢复为TEST
SQL> select USER#,NAME,PASSWORD  from user$ where user#=124;

     USER# NAME                                TYPE# PASSWORD
---------- ------------------------------ ---------- ------------------------------
       124 INSUR_RECOVER                           1 89E995F8B999AF00


在操作过程中有可能会导致用户被锁
--查看被锁的用户
        select LOCK_DATE,username from dba_users where username='USERNAME';
        LOCK_DATE为空说明没有锁定,非空为锁定。
-解锁方法
        ALTER USER USER_NAME ACCOUNT UNLOCK;

更改oracle集群中的的公用/互联IP子网配置

可使用oifcfg 添加或删除OCR 中的网络接口信息:

$ /bin/oifcfg getif
eth0 139.2.156.0 global public
eth1 192.168.0.0 global cluster_interconnect
$ oifcfg delif -global eth0
$ oifcfg setif –global eth0/139.2.166.0:public
$ oifcfg delif –global eth1
$ oifcfg setif –global eth1/192.168.1.0:cluster_interconnect
$ oifcfg getif
eth0 139.2.166.0 global public
eth1 192.168.1.0 global cluster_interconnect

更改公用/互联IP 子网配置
在安装Oracle Clusterware 和RAC 时,在OUI 交互阶段,有可能会指定与Oracle
Clusterware 将使用的公用和互联接口有关的错误信息。如果发生这种情况,则在安装过
程结束时,Oracle Clusterware 就可以启动,但以后在与集群中的其他节点进行通信时可能
会遇到问题。如果公用网络和互联的接口、IP 子网或IP 地址不正确或需要进行更改,则
应使用Oracle 接口配置工具(oifcfg) 进行更改,因为这样可以更新相应的OCR 信息。
在本幻灯片所显示的示例中,公用网络和专用网络的IP 子网都不正确:
1. 使用getif 选项可以获取当前接口信息。
2. 先使用delif 选项删除与公共接口对应的项,然后使用setif 选项输入正确的
信息。
3. 对专用互联执行相同的操作。
4. 检查新信息是否正确。
可以将网络接口存储为全局接口或节点特定的接口。如果RAC 集群的所有节点都具
有连接到同一子网的同一接口(推荐),则会将接口存储为全局接口。仅当集群中的某些
节点具有不同的接口和子网集时,才会将接口存储为节点特定的接口。

更改oracle集群中的的vip

更改VIP 地址

1. 确定用于支持VIP 的接口:

#ifconfig -a
[root@jyrac2 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:69:BC:16
          inet addr:192.168.1.204  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe69:bc16/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:60675 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:174445 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:37386695 (35.6 MiB)  TX bytes:114727056 (109.4 MiB)
          Interrupt:185 Base address:0x1480

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:69:BC:16
          inet addr:192.168.1.206  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:185 Base address:0x1480

eth1      Link encap:Ethernet  HWaddr 00:0C:29:69:BC:20
          inet addr:192.168.1.205  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe69:bc20/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:102825 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:62754558 (59.8 MiB)  TX bytes:12364 (12.0 KiB)
          Interrupt:193 Base address:0x1800

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:57831 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:57831 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13053456 (12.4 MiB)  TX bytes:13053456 (12.4 MiB)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

2. 停止依赖VIP 的所有资源:

$ srvctl stop instance -d DB -i DB1
$ srvctl stop asm -n node1
$ srvctl stop nodeapps -n node1
[oracle@jyrac2 crs]$ cd /u01/app/oracle/product/10.2.0/crs/bin
[oracle@jyrac2 bin]$ ./srvctl stop instance -d jyrac -i jyrac2
[oracle@jyrac2 bin]$ ./srvctl stop asm -n jyrac2
[oracle@jyrac2 bin]$ ./srvctl stop nodeapps -n jyrac2

3. 验证VIP 不再处于运行状态:

$ ifconfig -a [ + $ crs_stat
[root@jyrac2 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:69:BC:16
          inet addr:192.168.1.204  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe69:bc16/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63053 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:183453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:38187756 (36.4 MiB)  TX bytes:119829467 (114.2 MiB)
          Interrupt:185 Base address:0x1480

eth1      Link encap:Ethernet  HWaddr 00:0C:29:69:BC:20
          inet addr:192.168.1.205  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe69:bc20/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:111483 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:150 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:69802524 (66.5 MiB)  TX bytes:12742 (12.4 KiB)
          Interrupt:193 Base address:0x1800

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:60931 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:60931 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13708077 (13.0 MiB)  TX bytes:13708077 (13.0 MiB)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame.:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

You have new mail in /var/spool/mail/root
[root@jyrac2 ~]#

[oracle@jyrac1 bin]$ ./crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.jyrac.db   application    ONLINE    ONLINE    jyrac1
ora....c1.inst application    ONLINE    ONLINE    jyrac1
ora....c2.inst application    OFFLINE   OFFLINE
ora....SM1.asm application    ONLINE    ONLINE    jyrac1
ora....C1.lsnr application    ONLINE    ONLINE    jyrac1
ora.jyrac1.gsd application    ONLINE    ONLINE    jyrac1
ora.jyrac1.ons application    ONLINE    ONLINE    jyrac1
ora.jyrac1.vip application    ONLINE    ONLINE    jyrac1
ora....SM2.asm application    OFFLINE   OFFLINE
ora....C2.lsnr application    OFFLINE   OFFLINE
ora.jyrac2.gsd application    OFFLINE   OFFLINE
ora.jyrac2.ons application    OFFLINE   OFFLINE
ora.jyrac2.vip application    OFFLINE   OFFLINE
[oracle@jyrac1 bin]$

从上面的输出可以看出实例jyrac2已经停止运行节点jyrac2的vip已经停止了

4. 更改/etc/hosts 中的IP 和DNS。
对所有节点进行修改将jyrac2节点的vip从192.168.1.206修改为192.168.1.216

[root@jyrac2 ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               jyrac2 localhost.localdomain localhost


192.168.1.201 jyrac1
192.168.1.204 jyrac2
192.168.1.202 jyrac1-priv
192.168.1.205 jyrac2-priv
192.168.1.203 jyrac1-vip
192.168.1.216 jyrac2-vip

[root@jyrac1 ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               jyrac1 localhost.localdomain localhost


192.168.1.201 jyrac1
192.168.1.204 jyrac2
192.168.1.202 jyrac1-priv
192.168.1.205 jyrac2-priv
192.168.1.203 jyrac1-vip
192.168.1.216 jyrac2-vip

5. 使用srvctl 修改VIP 地址:
修改nodeapps 并提供新的虚拟IP 地址。使用带有–A 选项的srvctl modify
nodeapps 命令。应以root 用户身份运行此命令。在本幻灯片的示例中,依次指定
了新IP 地址(192.168.1.216)、相应的网络掩码(255.255.255.0) 以及希望VIP
使用的接口(eth0)。

[root@jyrac2 ~]# cd /u01/app/oracle/product/10.2.0/crs/bin
[root@jyrac2 bin]# ./srvctl modify nodeapps -n jyrac2 -A 192.168.1.216/255.255.255.0/eth0
You have new mail in /var/spool/mail/root
[root@jyrac2 bin]#

6. 启动nodeapps 及依赖它的所有资源:

# srvctl start nodeapps -n node1

[oracle@jyrac2 bin]$ ./srvctl start nodeapps -n jyrac2
[oracle@jyrac2 bin]$ ./srvctl start asm -n jyrac2
[oracle@jyrac2 bin]$ ./srvctl start instance -d jyrac -i jyrac2

7. 对集群中的所有节点重复上述步骤。由于srvctl 是集群范围的管理工具,因此可以
与第一个节点保持连接。
注:如果只更改了IP 地址,并且listener.ora、tnsnames.ora 和初始化参数文件使
用的是虚拟主机名,则无需对这些文件进行更改。如果同时更改了节点的虚拟主机名和
VIP 地址,则需要用新的虚拟主机名修改这些文件。对于listener.ora 文件,可以使
用netca 来删除旧监听程序并创建一个新监听程序。此外,还需要对连接到旧虚拟主机名
的所有客户机的tnsnames.ora 文件进行更改。