文件系统迁移至ASM
来源:互联网 发布:linux 一键php环境 编辑:程序博客网 时间:2024/05/16 10:43
操作系统
AIX5.3
主机名
AIX213
数据库版本
10.2.0
实例名
mydb
1.创建vg
[root@aix213 /]$mkvg -y 'migration' -s '64' '-f' hdisk3
2.建立逻辑卷
[root@aix213 /]$mklv -y 'asm1' -t 'raw' migration 160
[root@aix213 /]$mklv -y 'asm2' -t 'raw' migration 80
更改属主和属组
[root@aix213 /dev]$chown oracle:oinstall rasm1
[root@aix213 /dev]$chown oracle:oinstall rasm2
3.创建ASM磁盘组
本人通过DBCA…
这个错误的意思是,要想使用ASM,必须配置并启动CSS,按照提示执行
[root@aix213 /]$cd /u01/app/oracle/product/10.2.0/db_1/bin/
[root@aix213 bin]$localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'system'..
Operation successful.
Configuration for local CSS has been initialized
Adding to inittab
Startup will be queued to init within 30 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
aix213
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
然后创建磁盘组+DATA 和 +FRA,这里我用的是外部冗余
创建时需要修改ASM_DISKSTRING参数
SYS@ +ASM>alter system set ASM_DISKSTRING='/dev/rasm*'; 这里是支持通配符的
如果使用命令行创建磁盘组:
export ORACLE_SID=+ASM
sqlplus / as sysdba
create diskgroup DATA external redundancy disk '/dev/rasm1';
create diskgroup FRA external redundancy disk '/dev/rasm2';
查看磁盘组状态
SQL> select GROUP_NUMBER,NAME,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME TYPE TOTAL_MB FREE_MB
------------ ------------------------------ ------ ---------- ----------
1 DATA EXTERN 10240 10190
2 RECOVER EXTERN 5120 4877
4.通过RMAN backup as copy 到+DATA
启动数据库到mount
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
BACKUP AS COPY
INCREMENTAL LEVEL 0
DATABASE
FORMAT '+DATA'
TAG 'ORA_ASM_MIGRATION';
}
备份一下spfile
RMAN> BACKUP AS BACKUPSET SPFILE;
关闭flashback
RMAN> SQL 'ALTER DATABASE FLASHBACK OFF';
5.转储参数文件
RMAN>restore spfile to '+DATA/spfilemydb.ora';
RMAN>shutdown immediate
转储成功后,进入ORACLE_HOME/dbs目录,删除spfile文件,这里我只是mv了一下改了个名字,总之是为了让数据库启动时不再从这里读取spfile,而是读取pfile
pfile也备份一下,并在里面只留一行:
SPFILE='+DATA/spfilemydb.ora'
这样启动数据库时,会从pfile读取这条信息,从而去ASM磁盘组中找到spfile
6.启动到nomount修改闪回区路径和DB_CREATE_FILE_DEST
SQL> STARTUP FORCE NOMOUNT;
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='+DATA' SID='mydb'; 这个参数不是必须的,是OMF
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=5G SID='mydb';
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA' SID='mydb';
7.转储控制文件NOMOUNT状态
RMAN>restore controlfile to '+DATA' from '/u01/app/oracle/oradata/mydb/control01.ctl';
RMAN>restore controlfile to '+FRA' from '/u01/app/oracle/oradata/mydb/control01.ctl';
转出成功后通过ASMCMD,分别进入+DATA/mydb/controlfile/ 和 +FRA/mydb/controlfile/
找到控制文件的名字,然后修改spfile
alter system set control_files='+DATA/mydb/controlfile/backup.261.848844803','+fra/mydb/controlfile/backup.261.848849757' scope=spfile sid='mydb';
shutdown immediate
startup mount
8.SWITCH DATABASE TO COPY
MOUNT状态进入RMAN
SWITCH DATABASE TO COPY;
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
RECOVER DATABASE;
}
成功后open数据库,检查是否迁移成功
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/mydb/datafile/system.257.848843449
+DATA/mydb/datafile/undotbs1.258.848843449
+DATA/mydb/datafile/sysaux.256.848843449
+DATA/mydb/datafile/users.259.848843449
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/spfilemydb.ora
SQL> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string +DATA/mydb/controlfile/backup.
261.848844803, +FRA/mydb/contr
olfile/backup.261.848849757
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- -------------------------------------------------------
1 +DATA/mydb/onlinelog/group_1.265.848845393
2 +DATA/mydb/onlinelog/group_2.266.848845417
4 +DATA/mydb/onlinelog/group_4.264.848845365
4 +FRA/mydb/onlinelog/group_4.257.848845373
1 +FRA/mydb/onlinelog/group_1.258.848845403
2 +FRA/mydb/onlinelog/group_2.259.848845427
9.修改数据库的默认临时表空间
SQL> alter database tempfile '/u01/app/oracle/oradata/mydb/temp01.dbf' drop;
SQL> alter tablespace temp add tempfile;
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
+DATA/mydb/tempfile/temp.263.848845333
10.迁移online redo log
官方文档中提供了脚本
SET SERVEROUTPUT ON;
DECLARE
CURSOR rlc IS
SELECT GROUP# GRP, THREAD# THR, BYTES, 'NO' SRL
FROM V$LOG
UNION
SELECT GROUP# GRP, THREAD# THR, BYTES, 'YES' SRL
FROM V$STANDBY_LOG
ORDER BY 1;
stmt VARCHAR2(2048);
BEGIN
FOR rlcRec IN rlc LOOP
IF (rlcRec.srl = 'YES') THEN
stmt := 'ALTER DATABASE ADD STANDBY LOGFILE THREAD ' ||
rlcRec.thr || ' SIZE ' || rlcRec.bytes;
EXECUTE IMMEDIATE stmt;
stmt := 'ALTER DATABASE DROP STANDBY LOGFILE GROUP ' || rlcRec.grp;
EXECUTE IMMEDIATE stmt;
ELSE
stmt := 'ALTER DATABASE ADD LOGFILE THREAD ' ||
rlcRec.thr || ' SIZE ' || rlcRec.bytes;
EXECUTE IMMEDIATE stmt;
BEGIN
stmt := 'ALTER DATABASE DROP LOGFILE GROUP ' || rlcRec.grp;
DBMS_OUTPUT.PUT_LINE(stmt);
EXECUTE IMMEDIATE stmt;
EXCEPTION
WHEN OTHERS THEN
EXECUTE IMMEDIATE 'ALTER SYSTEM SWITCH LOGFILE';
EXECUTE IMMEDIATE 'ALTER SYSTEM CHECKPOINT GLOBAL';
EXECUTE IMMEDIATE stmt;
END;
END IF;
END LOOP;
END;
/
最后关库重启,验证一下所有文件是否迁移成功,做一次全备
需要注意的一点事,ASM实例应限于RDBMS实例启动,后于RDBMS实例关闭
- 文件系统迁移至ASM
- ASM迁移至文件系统
- 数据库迁移:文件系统迁至ASM
- ASM文件系统迁移
- 同机同版本数据库从文件系统迁移至ASM实验
- rman 迁移ASM到异机文件系统实战
- 使用RMAN迁移文件系统数据库到ASM
- 数据库迁移-从文件系统到ASM
- 数据库迁移-从ASM到文件系统
- Oracle数据库有文件系统迁移到ASM
- 把数据库从文件系统迁移到ASM
- 数据库从文件系统迁移到ASM
- AIX环境文件系统迁移到ASM存储
- AIX环境文件系统迁移到ASM存储
- 使用RMAN迁移文件系统数据库到ASM
- rhel4+oracle10g ASM配制及ASM与文件系统之间迁移
- 迁移数据库至ASM
- Redhat 5.5 Orcle 10G 文件系统单实例迁移至ASM实战
- JavaScript prototype
- php ob_flush() flush() 函数不起作用的原因
- HTML基础入门:Canvas+视频播放+音频播放
- 校园网linux系统下锐捷客户端的测试(已经成功登录)
- Python 学习记录(二)
- 文件系统迁移至ASM
- OpenMP: 循环结构的并行
- InputStream and OutputStream, Reader and Writer UML, Example
- Guava-Optional可空类型
- Spring整合CXF,发布RSETful 风格WebService
- 全民WIFI上网计划
- python 对string去掉标点符号
- IOS学习笔记
- php 二维数组去除重复值