主要步骤:
1、停掉服务,
2、关闭数据库shutdown immediate
3、移动数据文件到新的位置。
4、启动到mount状态,如果也移动了ctl,需要启动到nomount下,生成参数文件。
5、alter database rename '文件名' to '新位置',逐个文件处理。
6、startup。(alter database open)
查看当前数据库所有文件信息,含数据文件、日志文件、临时文件、控制文件、参数文件
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 4977278976 bytes
Fixed Size 2261768 bytes
Variable Size 1610616056 bytes
Database Buffers 3355443200 bytes
Redo Buffers 8957952 bytes
数据库装载完毕。
数据库已经打开。
SQL> archive log lis;t
SP2-0718: 非法的 ARCHIVE LOG 选项
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
当前日志序列 3
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/data/oradata/topicisxc/system01.dbf
/data/oradata/topicisxc/sysaux01.dbf
/data/oradata/topicisxc/undotbs01.dbf
/data/oradata/topicisxc/users01.dbf
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/data/oradata/topicisxc/temp01.dbf
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/data/oradata/topicisxc/redo03.log
/data/oradata/topicisxc/redo02.log
/data/oradata/topicisxc/redo01.log
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/data/oradata/topicisxc/control01.ctl
/opt/u01/app/oracle/fast_recovery_area/topicisxc/control02.ctl
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /opt/u01/app/oracle/product/11
.2.0/db_1/dbs/spfiletopicisxc.
ora
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> create pfile='/home/oracle/pfiletopicisxc0104.ora' from spfile;
File created.
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
--查看进程
[oracle@cxdb gs]# ps -ef | grep ora_pmon
root 12919 12862 0 17:43 pts/7 00:00:00 grep --color=auto ora_pmon
[oracle@cxdb gs]#
--创建目录
[root@cxdb ~]# cd /gs
[root@cxdb gs]# ls -l
总用量 20
drwxr-xr-x. 2 root root 4096 1月 4 15:55 back
drwx------ 2 root root 16384 1月 3 20:24 lost+found
[root@cxdb gs]# mkdir -p oradatanew
[root@cxdb gs]# chown -R oracle:oinstall oradatanew/
[root@cxdb gs]# ls -ld oradatanew/
drwxr-xr-x 2 oracle oinstall 4096 1月 4 17:41 oradatanew/
[root@cxdb gs]# chmod -R 755 oradatanew/
--移动数据库文件到新路径 尽可能用oracle用户移动
[oracle@cxdb data]$ cd oradata/
[oracle@cxdb oradata]$ ls -l
total 0
drwxr-x---. 2 oracle oinstall 179 Jan 3 19:43 topicisxc
[oracle@cxdb oradata]$ cp -r topicisxc /gs/oradatanew/
[oracle@cxdb oradata]$ ls -l /gs/oradatanew/
total 4
drwxr-x--- 2 oracle oinstall 4096 Jan 4 17:43 topicisxc
[oracle@cxdb oradata]$ ls -l /gs/oradatanew/topicisxc/
total 2919424
-rw-r----- 1 oracle oinstall 9748480 Jan 4 17:43 control01.ctl
-rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo01.log
-rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo02.log
-rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo03.log
-rw-r----- 1 oracle oinstall 545267712 Jan 4 17:43 sysaux01.dbf
-rw-r----- 1 oracle oinstall 775954432 Jan 4 17:43 system01.dbf
-rw-r----- 1 oracle oinstall 30416896 Jan 4 17:43 temp01.dbf
-rw-r----- 1 oracle oinstall 78651392 Jan 4 17:43 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Jan 4 17:43 users01.dbf
--移动控制文件到新路径 尽可能用oracle用户移动
[oracle@cxdb ~]$ cp /opt/u01/app/oracle/fast_recovery_area/topicisxc/control02.ctl /gs/oradatanew/topicisxc/control02.ctl
--复制完成后查看
[oracle@cxdb ~]$ ls -l /gs/oradatanew/topicisxc
total 2928944
-rw-r----- 1 oracle oinstall 9748480 Jan 4 17:43 control01.ctl
-rw-r----- 1 oracle oinstall 9748480 Jan 4 17:51 control02.ctl
-rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo01.log
-rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo02.log
-rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo03.log
-rw-r----- 1 oracle oinstall 545267712 Jan 4 17:43 sysaux01.dbf
-rw-r----- 1 oracle oinstall 775954432 Jan 4 17:43 system01.dbf
-rw-r----- 1 oracle oinstall 30416896 Jan 4 17:43 temp01.dbf
-rw-r----- 1 oracle oinstall 78651392 Jan 4 17:43 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Jan 4 17:43 users01.dbf
--更改pfile中的控制文件路径
[oracle@cxdb oradata]$ cd
[oracle@cxdb ~]$ ls -l
total 4
-rw-r--r-- 1 oracle oinstall 1188 Jan 4 17:38 pfiletopicisxc0104.ora
[oracle@cxdb ~]$ vi pfiletopicisxc0104.ora
topicisxc.__db_cache_size=4110417920
topicisxc.__java_pool_size=33554432
topicisxc.__large_pool_size=50331648
topicisxc.__oracle_base='/opt/u01/app/oracle/'#ORACLE_BASE set from environment
topicisxc.__pga_aggregate_target=1677721600
topicisxc.__sga_target=4999610368
topicisxc.__shared_io_pool_size=0
topicisxc.__shared_pool_size=771751936
topicisxc.__streams_pool_size=0
*.audit_file_dest='/opt/u01/app/oracle/admin/topicisxc/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/gs/oradatanew/topicisxc/control01.ctl','/gs/oradatanew/topicisxc/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='topicisx'
*.db_recovery_file_dest='/opt/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=214748364800
*.db_unique_name='topicisxc'
*.diagnostic_dest='/opt/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=topicisxcXDB)'
*.filesystemio_options='setall'
*.job_queue_processes=1000
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=1000
*.pga_aggregate_target=1665138688
*.processes=2000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=2450
*.sga_target=4995416064
*.undo_tablespace='UNDOTBS1'
更改控制文件路径 *.control_files='/gs/oradatanew/topicisxc/control01.ctl','/gs/oradatanew/topicisxc/control02.ctl'
--用改好的pfile文件启动数据库到nomount状态
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> startup pfile='/home/oracle/pfiletopicisxc0104.ora' nomount
ORACLE instance started.
Total System Global Area 1778384896 bytes
Fixed Size 8621712 bytes
Variable Size 687866224 bytes
Database Buffers 1073741824 bytes
Redo Buffers 8155136 bytes
--启动数据库到mount状态
SQL> alter database mount;
Database altered.
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> alter database rename file '/data/oradata/topicisxc/system01.dbf' to '/gs/oradatanew/topicisxc/system01.dbf';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/sysaux01.dbf' to '/gs/oradatanew/topicisxc/sysaux01.dbf';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/undotbs01.dbf' to '/gs/oradatanew/topicisxc/undotbs01.dbf';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/users01.dbf' to '/gs/oradatanew/topicisxc/users01.dbf';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/temp01.dbf' to '/gs/oradatanew/topicisxc/temp01.dbf';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/redo01.log' to '/gs/oradatanew/topicisxc/redo01.log';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/redo02.log' to '/gs/oradatanew/topicisxc/redo02.log';
数据库已更改。
SQL> alter database rename file '/data/oradata/topicisxc/redo03.log' to '/gs/oradatanew/topicisxc/redo03.log';
数据库已更改。
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> alter database open;
数据库已更改。
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/gs/oradatanew/topicisxc/system01.dbf
/gs/oradatanew/topicisxc/sysaux01.dbf
/gs/oradatanew/topicisxc/undotbs01.dbf
/gs/oradatanew/topicisxc/users01.dbf
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/gs/oradatanew/topicisxc/temp01.dbf
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/gs/oradatanew/topicisxc/redo03.log
/gs/oradatanew/topicisxc/redo02.log
/gs/oradatanew/topicisxc/redo01.log
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/gs/oradatanew/topicisxc/control01.ctl
/gs/oradatanew/topicisxc/control02.ctl
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
export ORACLE_SID=topicisxc
sqlplus / as sysdba
SQL> create spfile from pfile='/home/oracle/pfiletopicisxc0104.ora';
文件已创建。
export ORACLE_SID=topicisxc
sqlplus / as sysdba
--关闭数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
--启动数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 4977278976 bytes
Fixed Size 2261768 bytes
Variable Size 1610616056 bytes
Database Buffers 3355443200 bytes
Redo Buffers 8957952 bytes
数据库装载完毕。
数据库已经打开。
如果磁盘空间足够,可省略该步骤。
--删除原控制文件
[root@cxdb data]# cd /opt/u01/app/oracle/fast_recovery_area/topicisxc/
[root@cxdb topicisxc]# ls -l
总用量 9520
-rw-r-----. 1 oracle oinstall 9748480 1月 4 17:38 control02.ctl
[root@cxdb topicisxc]# rm -f control02.ctl
--删除原数据文件 临时文件 控制文件 日志文件
[root@cxdb ~]# cd /data/
[root@cxdb data]# ls -l
总用量 0
drwxrwxrwx. 3 root root 23 1月 3 19:36 oradata
[root@cxdb data]# ls -l oradata/
总用量 0
drwxr-x---. 2 oracle oinstall 179 1月 3 19:43 topicisxc
[root@cxdb data]# ls -l
总用量 0
drwxrwxrwx. 3 root root 23 1月 3 19:36 oradata
[root@cxdb data]# ls -l oradata/topicisxc/
总用量 2919404
-rw-r-----. 1 oracle oinstall 9748480 1月 4 17:38 control01.ctl
-rw-r-----. 1 oracle oinstall 524288512 1月 4 17:32 redo01.log
-rw-r-----. 1 oracle oinstall 524288512 1月 4 17:32 redo02.log
-rw-r-----. 1 oracle oinstall 524288512 1月 4 17:38 redo03.log
-rw-r-----. 1 oracle oinstall 545267712 1月 4 17:38 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 775954432 1月 4 17:38 system01.dbf
-rw-r-----. 1 oracle oinstall 30416896 1月 3 22:00 temp01.dbf
-rw-r-----. 1 oracle oinstall 78651392 1月 4 17:38 undotbs01.dbf
-rw-r-----. 1 oracle oinstall 5251072 1月 4 17:38 users01.dbf
[root@cxdb data]# rm -rf oradata/