Posts Tagged ‘ Oracle

ASM管理命令和操作笔记

首先创建磁盘(如果是虚拟机,通过添加hard disk 文件加磁盘)
[需要停虚拟机,将盘添加到第二个节点]
[root@node1 ~]#fdisk /dev/sdf
输入以下:n/p/1/enter/enter
node1上初始化ASM盘
[root@node1 ~]#/etc/init.d/oracleasm createdisk NOVA3 /dev/sdf1
node2 上扫描并列盘
[root@node2 ~]#/etc/init.d/oracleasm scandisks
[root@node2 ~]# /etc/init.d/oracleasm listdisks
NOVA1
NOVA2
NOVA3
登录node1添加磁盘
[root@node1 ~]#su – oracle
[root@node1 ~]#ORACLE_SID=+ASM1
[root@node1 ~]#sqlplus / as sysdba
SQL>alter diskgroup RAC_DISK add disk ‘ORCL:NOVA3′ name test_asmdisk;
登录node2测试
SQL> select path from v$asm_disk;
PATH
——————————————————————————–
ORCL:NOVA3
/dev/raw/raw2
/dev/raw/raw1
ORCL:NOVA1
ORCL:NOVA2
/dev/raw/raw3
/dev/raw/raw4
SQL> select NAME,ALLOCATION_UNIT_SIZE,TOTAL_MB from v$asm_diskgroup;
NAME ALLOCATION_UNIT_SIZE TOTAL_MB
—————————— ——————– ———-
RAC_DISK 1048576 8180
在node1上执行,ASM上创建一个表空间
[oracle@node1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 – Production on Fri May 8 17:19:58 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> create tablespace nova_test datafile ‘+RAC_DISK’ size 200M;
Tablespace created.
SQL> create user nova identified by nova default tablespace nova_test;
User created.
SQL> grant dba to nova;
Grant succeeded.
SQL> conn nova/nova;
Connected.
SQL> create table t_test as select * from dba_objects;
Table created.
SQL> select count(*) from t_test;
COUNT(*)
———-
50029
SQL>
登录node2上执行,做一下测试。
[oracle@node2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 – Production on Fri May 8 17:24:00 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> conn nova/nova
Connected.
SQL> select count(*)from t_test;
COUNT(*)
———-
50029
SQL>
其他命令操作
alter diskgroup dgroup1 add failgroup fgroup1 disk ‘ORCL:NOVA3′ failgroup fgroup2 disk ‘ORCL:VOL6′;
自动平衡的工作进度
desc v$asm_operation
select * from v$asm_operation;
查询ASM磁盘组对应关系
select label,failgroup from v$asm_disk;
查看磁盘组的名称和状态
SQL> select state,header_status,substr(name,1,12) Name,free_mb,substr(path,1,16) PATH from v$asm_disk;

STATE HEADER_STATU NAME FREE_MB PATH
——– ———— ———— ———- —————-
NORMAL FOREIGN 0 /dev/raw/raw2
NORMAL FOREIGN 0 /dev/raw/raw1
NORMAL UNKNOWN 0 ORCL:NOVA1
NORMAL UNKNOWN 0 ORCL:NOVA2
NORMAL MEMBER RAC_DISK_000 2496 /dev/raw/raw3
NORMAL MEMBER RAC_DISK_000 3334 /dev/raw/raw4
NORMAL MEMBER TEST_ASMDISK 826 ORCL:NOVA3
查看ASM磁盘管理均衡情况
SQL>select operation,state,power,actual,sofar,est_work,est_minutes from v$asm_operation;
登入到ASM的实例,删除磁盘组中VOL4磁盘
alter diskgroup RAC_DISK drop disk NOVA3;
强制让ASM自动平衡
alter diskgroup RAC_DISK rebalance;
加入故障盘到磁盘组
alter diskgroup dgroup1 add failgroup fgroup1 disk ‘ORCL:NOVA3′ failgroup fgroup2 disk ‘ORCL:NOVA4′;

删除ASM残留信息方法和重建步骤

node1&&node2都运行一下命令
cd /opt/ora10g/product/10.2.0/db_1/dbs
rm -rf *
cd /opt/ora10g/admin
rm -rf *

dd if=/dev/zero of=/dev/raw/raw3 bs=8192 count=12800
dd if=/dev/zero of=/dev/raw/raw4 bs=8192 count=12800

dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=12800[crs disk ]
dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800[vot disk]
/etc/init.d/oracleasm createdisk NOVA1 /dev/sdd1
/etc/init.d/oracleasm createdisk NOVA2 /dev/sde1
vi /etc/oratab [删除+ASM相关字段]

crs_unregister ora.node2.ASM2.asm
crs_unregister ora.node1.ASM1.asm

删除ASM实例的方法

[oracle@node1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 – Production on Sun Apr 26 14:56:13 2009

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

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> select instance_name from v$asm_client;

no rows selected

SQL> select name from v$asm_diskgroup;

NAME
——————————
RAC_DISK

SQL> drop diskgroup RAC_DISK including contents ;

Diskgroup dropped.
SQL> shutdown immediate
ORA-15100: invalid or missing diskgroup name
ASM instance shutdown

[oracle@node1 ~]$ oradism -delete -asmsid +ASM
[oracle@node1 ~]$ oradism -delete -asmsid +ASM1
[oracle@node1 ~]$ oradism -delete -asmsid +ASM2
srvctl stop asm -n node1
srvctl stop asm -n node2

[oracle@node2 ~]$ crs_stat -t
Name Type Target State Host
————————————————————
ora….SM1.asm application ONLINE ONLINE node1
ora….E1.lsnr application OFFLINE OFFLINE
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora….SM2.asm application ONLINE OFFLINE
ora….E2.lsnr application OFFLINE OFFLINE
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
[oracle@node2 ~]$ crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy

srvctl add asm -n node1 -i +ASM1 -o /opt/ora10g/admin

删除自动存储管理实例+ASM
实例+ASM的删除是在数据库被卸载之后完成的,并删除/ORACLE_HOME/dbs目录下的所有文件(除了与ASM相关的)。因此必须完成下列步骤:
1)在命令提示符中,设置oracle_sid环境变量为+ASM实例:
# export oracle_sid=+ASM
2)启动SQL*Plus并以sys用户连接到自动存储管理+ASM实例:
# sqlplus / as sysdba
3)使用下列命令来确定是否有数据库实例正在使用自动存储管理实例+ASM:
SQL>select instance_name from v$asm_client;
该命令结果列出所有正在运行并使用+ASM实例的数据库实例。只要+ASM包含正在支持的数据库实例,就不能删除该+ASM实例。
4)如果没有与+ASM相关联的数据库实例,则删除与该实例相关联的磁盘组。
首先,识别与+ASM相关联的磁盘组:
SQL>select name from v$asm_diskgroup;
其次,用下列命令删除每个要删除的磁盘组:
SQL>drop diskgroup<disk_group_name>including contents;
5)关闭+ASM实例并退出SQL*Plus:
SQL>shutdown
SQL>exit
6)在命令提示符中输入下列命令,删除+ASM服务:
oradim -delete -asmsid +ASM

Oracle 修改归档模式

首先查看数据库现有模式可使用以下语句
select name,log_mode from v$database;
也可以用下面的语句
archive log list;(该方法需要as sysdba)

对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:
1. SQL> alter system set log_archive_dest_1=’location=/oracle/oracle10g/log/archive_log’;
该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测

例如再添加一个日志位置可使用以下语句
SQL>alter system set log_archive_dest_2=’location=/oracle/oracle10g/log2/archive_log’;

2.关闭数据库
SQL> shutdown immediate

3.启动数据mount状态:
SQL> startup mount;

4、修改数据库为归档模式:
SQL> alter database archivelog;

5、打开数据库,查询:
SQL> alter database open;

修改日志文件命名格式:
SQL> alter system set log_archive_max_processes = 5;
SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

修改完成后可以查看日志模式是否修改成功!

特别指出的是在Oracle 9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。
————————————————————————————————
SQL> SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1258291200 bytes
Fixed Size 1978336 bytes
Variable Size 318771232 bytes
Database Buffers 922746880 bytes
Redo Buffers 14794752 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL>

spfile和pifle的一点浅浅的认识

写给不明白的,或者模糊的,分享一下。
关于pfile和spfile的文件,spfile是二进制文件,是不可以直观来查看和修改的,改了之后就会损坏它的内部格式,需要通过命令来创建,pfile是文本文件可以修改,当startup的时候默认读取参数的先后顺序是
spfileSID.ora->spfile.ora->initSID.ora->init.ora;
spfileNOVABD1->spfile.ora->initNOVADB1.ora>->init.ora
想对二进制文件进行了修改,应该先将spfile文件生成文本文件pfile,然后修改pfile文件,
将二进制文件spfile生成文本文件pfile,(默认生成的路径为$ORACLE_HOME/dbs)
SQL>create pfile from spfile;
例如我的initNOVADB1.ora就是最近生成的。
[oracle@node1 dbs]$ ls -ltr
total 96
-rw-r—– 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-r—– 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r—– 1 oracle oinstall  1536 Apr 29 21:59 orapw+ASM1
lrwxrwxrwx 1 oracle oinstall    37 Apr 29 21:59 init+ASM1.ora -> /opt/ora10g/admin/+ASM/pfile/init.ora
-rw-r—– 1 oracle oinstall  1544 Apr 29 21:59 hc_+ASM1.dat
-rw-rw—- 1 oracle oinstall  1544 Apr 29 22:15 hc_NOVADB1.dat
-rw-r—– 1 oracle oinstall  1536 Apr 29 22:30 orapwNOVADB1
-rw-rw—- 1 oracle oinstall  1546 May  4 12:25 ab_+ASM1.dat
-rw-r—– 1 oracle oinstall  1536 May  6 12:27 spfileNOVADB1.ora
-rw-r–r– 1 oracle oinstall 40960 May  6 12:45 dbs.tar
-rw-r—– 1 oracle oinstall  1263 May  6 13:14 initNOVADB1.ora
这样我们生成的pfile文件可以通过vi来编辑了,然后怎么才能让修改的pfile(initNOVADB1.ora)内容生效呢?
SQL>create spfile from pfile;
这里的pfile就是我们刚刚修改编辑过的,然后又一次生成了spfile,覆盖了原来的内容。
SQL> startup pfile=/opt/ora10g/product/10.2.0/db_1/dbs/initNOVADB1.ora 和 SQL>startup (默认从spfile启动)是等效的。我们也可以指定pfile来作为启动的文件。
希望批评指正

Oracle 更改表空间位置的具体步骤

[oracle]> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on Tue Aug 19 03:46:29 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1977208 bytes
Variable Size 104862856 bytes
Database Buffers 58720256 bytes
Redo Buffers 2211840 bytes
Database mounted.
Database opened.
SQL> alter tablespace users offline;
Tablespace altered.
SQL> host mv /opt/oracle/oradata/ora10g/users01.dbf /opt/oracle/oradata_bak/
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]> ls
control01.ctl control03.ctl redo01.log redo03.log system01.dbf undotbs01.dbf
control02.ctl example01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf
[oracle]> mv /opt/oracle/oradata/ora10g/users01.dbf /opt/oracle/oradata_bak/
[oracle]> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on Tue Aug 19 03:52:19 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> alter tablespace users
2 rename datafile ‘/opt/oracle/oradata/ora10g/users01.dbf’ to ‘/opt/oracle/oradata_bak/users01.dbf’;
Tablespace altered.
SQL> alter tablespace users online;
Tablespace altered.
见效果
=============================================
RMAN> report schema
2> ;
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
—- ——– ——————– ——- ————————
1 480 SYSTEM *** /opt/oracle/oradata/ora10g/system01.dbf
2 30 UNDOTBS1 *** /opt/oracle/oradata/ora10g/undotbs01.dbf
3 240 SYSAUX *** /opt/oracle/oradata/ora10g/sysaux01.dbf
4 5 USERS *** /opt/oracle/oradata_bak/users01.dbf
5 100 EXAMPLE *** /opt/oracle/oradata/ora10g/example01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
—- ——– ——————– ———– ——————–
1 22 TEMP 32767 /opt/oracle/oradata/ora10g/temp01.dbf
恢复回去…
[oracle]> pwd
/opt/oracle/oradata/ora10g
[oracle]> mv /opt/oracle/oradata_bak/users01.dbf .
[oracle]> ls
control01.ctl control03.ctl redo01.log redo03.log system01.dbf undotbs01.dbf
control02.ctl example01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf
[oracle]> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on Tue Aug 19 04:07:47 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> alter tablespace users rename datafile ‘/opt/oracle/oradata_bak/users01.dbf’ to ‘/opt/oracle/oradata/ora10g/users01.dbf’;
Tablespace altered.
SQL> alter tablespace users online;
Tablespace altered.
效果如下
RMAN> report schema;
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
—- ——– ——————– ——- ————————
1 480 SYSTEM *** /opt/oracle/oradata/ora10g/system01.dbf
2 30 UNDOTBS1 *** /opt/oracle/oradata/ora10g/undotbs01.dbf
3 240 SYSAUX *** /opt/oracle/oradata/ora10g/sysaux01.dbf
4 5 USERS *** /opt/oracle/oradata/ora10g/users01.dbf
5 100 EXAMPLE *** /opt/oracle/oradata/ora10g/example01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
—- ——– ——————– ———– ——————–
1 22 TEMP 32767 /opt/oracle/oradata/ora10g/temp01.dbf

Oracle检查对象[第八章笔记]

Oracle 检查对象
8.3. Oracle对象的状态
共分六个部分,分别为:检查Oracle控制文件状态;检查Oracle在线日志状态;检查Oracle表空间的状态;检查Oracle所有数据文件状态;检查Oracle所有表、索引、存储过程、触发器、包等对象的状态;检查Oracle所有回滚段的状态。
8.3.1. Oracle控制文件状态
检查控制文件状态是否正常。

$sqlplus system/manager
sql>select * from v$controlfile;

输出结果应该有3条以上(包含3条)的记录,“STATUS”应该为空。状态为空表示控制文件状态正常。
8.3.2. Oracle在线日志状态
检查在线日志状态是否正常。

$sqlplus system/manager

sql>select * from v$logfile;

输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。
注:“STATUS”显示为空表示正常。
8.3.3. Oracle表空间状态
检查应用相关表空间状态是否为“ONLINE”。

$sqlplus system/manager
sql>select tablespace_name,status from dba_tablespaces;

其中“STATUS”应该都为“ONLINE”,加粗输出显示的部分为我们应用相关的表空间。
8.3.4. Oracle所有数据文件状态
检查数据文件状态是否为“ONLINE”。

$sqlplus system/manager
col NAME form a50
col STATUS form a10
sql>select name,status from v$datafile;

输出结果中“STATUS”应该都为“ONLINE”。
8.3.5. Oracle所有表、索引、存储过程、触发器、包等对象的状态
检查系统是否存在无效对象,无效对象是否与应用相关。

$sqlplus system/manager
sql>select owner,object_name,object_type
from dba_objects where status!=’VALID’ and owner!=’SYS’ and owner!=’SYSTEM’;

如果有记录返回,则说明存在无效的对象。若这些对象与我们应用相关,那么需要重新生成这个对象。
8.3.6. Oracle所有回滚段的状态
检查回滚段状态是否正常。

$sqlplus system/manager
sql>select segment_name,status from dba_rollback_segs;

应该有若干条记录返回,并且输出结果中所有回滚段的“STATUS”应该为“ONLINE”。
8.4. Oracle相关资源的使用情况
共分五个部分,分别为:检查Oracle初始化文件中相关的参数值,检查Oracle各个表空间的增长情况,检查一些扩展异常的对象,检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值。

8.4.1. 检查Oracle初始化文件中相关的参数值
如果参数的“LIMIT_VALU”-“MAX_UTILIZATION”<=5,则表明与“RESOURCE_NAME”相关的Oracle初始化参数需要调整。可以通过修改Oracle初始化参数文件方式来修改。

$sqlplus system/manager
sql>select resource_name,max_utilization,initial_allocation,
limit_value from v$resource_limit;

若“LIMIT_VALU”-“MAX_UTILIZATION”<=5,则表明与“RESOURCE_NAME”相关的Oracle初始化参数需要调整。可以通过修改Oracle初始化参数文件$ORACLE_BASE/admin/XXX/pfile/initXXX.ora来修改。

初始化参数修改后只有在重新启动数据库后才会生效。对于初始化文件中每个参数的意义请参考Oracle官方文档。
8.4.2. Oracle各个表空间的增长情况
检查表空间使用率“USED_PERCENT”是否在90%以上,是否需要增加数据文件来扩展表空间。

$sqlplus system/manager
sql>select A.tablespace_name,(1-(A.total)/B.total)*100 used_percent
from (select tablespace_name,sum(bytes) total
from dba_free_space group by tablespace_name) A,
(select tablespace_name,sum(bytes) total
from dba_data_files group by tablespace_name) B
where A.tablespace_name=B.tablespace_name;

如果使用率“USED_PERCENT”在90%以上,则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能。

8.4.3. 检查扩展异常的对象
检查是否有某些对象的扩展已快达到其定义时的最大扩展值。对于这些对象建议修改它的存储结构参数。

$sqlplus system/manager
sql>select Segment_Name, Segment_Type, TableSpace_Name,
(Extents/Max_extents)*100 Percent
From sys.DBA_Segments
Where Max_Extents != 0 and (Extents/Max_extents)*100>=95
order By Percent;

如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修改它的存储结构参数,具体方法可咨询相关技术支持。

8.4.4. 检查system表空间内的内容
检查system表空间是否存在一些非system和sys用户的对象,及是否与应用相关。如果相关,建议把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值。

$sqlplus system/manager
sql>select distinct(owner) from dba_tables
where tablespace_name=’SYSTEM’ and
owner!=’SYS’ and owner!=’SYSTEM’
union
select distinct(owner) from dba_indexes
where tablespace_name=’SYSTEM’ and owner!=’SYS’ and owner!=’SYSTEM’;

如果有记录返回,则表明system表空间内存在一些非system和sys用户的对象。应该进一步检查这些对象是否与我们应用相关。如果相关请把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值。

8.4.5. 检查对象的下一扩展与表空间的最大扩展值
检查数据库对象的下一个扩展是否大于该对象所属表空间的最大扩展值,如有必要建议调整相应表空间的存储参数。

$sqlplus system/manager
sql>select a.table_name, a.next_extent, a.tablespace_name
from all_tables a,
(select tablespace_name, max(bytes) as big_chunk
from dba_free_space
group by tablespace_name ) f
where f.tablespace_name = a.tablespace_name
and a.next_extent > f.big_chunk
union
select a.index_name, a.next_extent, a.tablespace_name
from all_indexes a,
(select tablespace_name, max(bytes) as big_chunk
from dba_free_space
group by tablespace_name ) f
where f.tablespace_name = a.tablespace_name and a.next_extent > f.big_chunk;

如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存储参数。

检查ORA进程方法

ps -ef |grep “ora_”|grep -v grep

在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:
• Oracle写数据文件的进程,输出显示为:“ora_dbw0_dbsg”
• Oracle写日志文件的进程,输出显示为:“ora_lgwr_dbsg”
• Oracle监听实例状态的进程,输出显示为:“ora_smon_dbsg”
• Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_dbsg”
• Oracle进行检查点的进程,输出显示为:“ora_ckpt_dbsg”
• Oracle进行恢复的进程,输出显示为:“ora_reco_dbsg”

————————————————————————————

oracle  8649     1  0 07:21:12 ?        0:00 ora_pmon_ora10g
oracle  8651     1  0 07:21:13 ?        0:01 ora_psp0_ora10g
oracle  8653     1  0 07:21:13 ?        0:01 ora_mman_ora10g
oracle  8655     1  0 07:21:13 ?        0:04 ora_dbw0_ora10g
oracle  8657     1  0 07:21:13 ?        0:05 ora_lgwr_ora10g
oracle  8659     1  0 07:21:13 ?        0:09 ora_ckpt_ora10g
oracle  8661     1  0 07:21:14 ?        0:13 ora_smon_ora10g
oracle  8663     1  0 07:21:14 ?        0:00 ora_reco_ora10g
oracle  8665     1  0 07:21:14 ?        0:02 ora_cjq0_ora10g
oracle  8667     1  0 07:21:14 ?        0:15 ora_mmon_ora10g
oracle  8669     1  0 07:21:14 ?        0:07 ora_mmnl_ora10g
oracle  8671     1  0 07:21:15 ?        0:00 ora_d000_ora10g
oracle  8673     1  0 07:21:15 ?        0:00 ora_s000_ora10g
oracle  8677     1  0 07:21:21 ?        0:02 ora_arc0_ora10g
oracle  8679     1  0 07:21:21 ?        0:00 ora_arc1_ora10g
oracle  8683     1  0 07:21:29 ?        0:00 ora_qmnc_ora10g
oracle  8690     1  0 07:21:39 ?        0:03 ora_q000_ora10g
oracle  8692     1  0 07:21:39 ?        0:00 ora_q001_ora10g
oracle 15635     1  4 14:00:41 ?        0:01 ora_j000_ora10g

检查Oracle 实例状态

select instance_name,version,status,database_status from v$instance;

检查Log状态

select name ,log_mode,open_mode from v$database;

归档Log清单

archive log list;

检查Oracle核心转储目录

ls $ORACLE_BASE/admin/ORCL/cdump/*.trc |wc -l
ls $ORACLE_BASE/admin/ORCL/udump/*.trc |wc -l
上面命令的结果是某个数字,如果这个数字每天增长10以上,则说明Oracle进程经常发生核心转储,某些用户进程或者数据库后台进程由于无法处理的原因而异常退出。频繁的核心转储特别是数据库后台进程的核心转储会导致数据库异常终止。

检查Oracle在线日志状态

select * from v$logfile;

GROUP# STATUS  TYPE    MEMBER
———- ——- ——- —————————————————–
3         ONLINE  /opt/oradata/ora10g/oradata/ora10g/redo03.log
2         ONLINE  /opt/oradata/ora10g/oradata/ora10g/redo02.log
1         ONLINE  /opt/oradata/ora10g/oradata/ora10g/redo01.log

输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。
注:“STATUS”显示为空表示正常。

检查Oracle各个表空间的增长情况

select A.tablespace_name,(1-(A.total)/B.total)*100 used_percent

from

(select tablespace_name,sum(bytes) total

from dba_free_space group by tablespace_name) A,

(select tablespace_name,sum(bytes) total

from dba_data_files group by tablespace_name) B

where A.tablespace_name=B.tablespace_name;
如果使用率USED_PERCENT在90%以上,则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能。

请不要对表空间增加过多的数据文件,增加数据文件的原则是每个数据文件大小为2G,自动扩展的最大限制在4G;

alter tablespace SYSAUX add datafile ‘/opt/oradata/ora10g/oradata/ora10g/sysaux02.dbf’ size 1G;

alter tablespace SYSTEM add datafile ‘/opt/oradata/ora10g/oradata/ora10g/system02.dbf’ size 2G;

增加数据文件后,请检查热备脚本,是否会包含新增的数据文件;

Page 1 of 11