警告
本文最后更新于 2022-07-01,文中内容可能已过时。
摘要
1
2
| SQL> set pagesize 999;
SQL> set linesize 999;
|
查看表空间和表空间的文件
1
2
3
4
| # 表空间
SQL> select tablespace_name,file_name from dba_data_files;
# 临时表空间
SQL> select tablespace_name,file_name from dba_temp_files;
|
表空间离线
1
| SQL> alter tablespace TEST offline;
|
把物理文件复制到新的位置
1
| SQL> host cp /data/oracle/oradata/orcl/test.ora /data2/oradata/test.dbf
|
更换物理地址
1
| SQL> alter tablespace TEST rename datafile '/data/oracle/oradata/orcl/test.ora' to '/data2/oradata/test.dbf';
|
表空间在线
1
| SQL> alter tablespace TEST online;
|
删除原来的文件
1
| SQL> host rm /data/oracle/oradata/orcl/test.ora
|
如果报下面的错
1
2
3
| ERROR at line 1:
ORA-01113: file 9 needs media recovery
ORA-01110: data file 9: '/data/oracle/oradata/orcl/test.ora'
|
则需要执行下面的语句:
1
| SQL> recover datafile '/data/oracle/oradata/orcl/test.ora';
|
再查看磁盘空间,发现磁盘的使用率并没有变。
为什么呢?
虽然删除了文件,oracle没有关闭,oracle 并没有释放物理文件的句柄,空间并没真正的释放。
如果需要真正的释放空间,还需要oracle 重新启动。
临时表空间不能offline
1
2
3
4
5
6
7
8
9
10
11
12
| SQL> shutdown immediate;
SQL> startup mount;
SQL> host cp /data/oracle/oradata/orcl/test_t.ora /data2/oradata/test_t.dbf
# SQL> alter database rename tempfile '/data/oracle/oradata/orcl/test_t.ora' to '/data2/oradata/test_t.dbf';
SQL> alter database rename file '/data/oracle/oradata/orcl/test_t.ora' to '/data2/oradata/test_t.dbf';
SQL> host rm /data/oracle/oradata/orcl/test_t.ora
SQL> alter database open;
|
关闭主库
修改备库参数
1
| SQL> alter system set standby_file_management=manual;
|
取消备库应用,此时备库standby_file_management
为manual
1
| SQL> alter database recover managed standby database cancel;
|
关闭数据库,移动文件到相应位置
1
2
| SQL> shutdown immediate;
SQL> host cp /data/oracle/oradata/orcl/tt.ora /data2/oradata/orcl/tt.dbf
|
备库启动,rename file
1
2
| SQL> startup mount;
SQL> alter database rename file '/data/oracle/oradata/orcl/tt.ora' to '/data2/oradata/orcl/tt.dbf';
|
备库修改参数
1
| SQL> alter system set standby_file_management=auto;
|
重新启动备库
1
2
3
4
5
| SQL> shutdown immediate;
SQL> startup nomount;
SQL> alter database mount standby database;
SQL> alter database open read only;
SQL> alter database recover managed standby database using current logfile disconnect from session;
|
启动主库