ORA-01541: system tablespace cannot be brought offline; shut down if necessary

本文记录了Oracle数据库中数据文件从一个目录迁移到另一个目录的过程,包括离线与在线表空间、更改数据文件路径及数据库重启后的文件恢复操作。
部署运行你感兴趣的模型镜像

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_crb3zkxf_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_crb3zky3_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_crb3zky6_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_crb3zkyr_.dbf
/u01/app/oracle/oradata/ORCL/datafile/sunecm01.dbf
/data/oradata/sunecmf5/sunecmf5data01.db
/data/oradata/sunecmf5/sunecmf5data02.db
/data/oradata/sunecmf5/sunecmf5data03.db

8 rows selected.


SQL> archive log list
Database log mode        Archive Mode
Automatic archival        Enabled
Archive destination        /data/oracle/archivelog1
Oldest online log sequence     97
Next log sequence to archive   98
Current log sequence        98


SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME         STATUS
------------------------------ ---------
SYSTEM          ONLINE
SYSAUX          ONLINE
UNDOTBS1         ONLINE
TEMP          ONLINE
USERS          ONLINE
SUNECM          ONLINE
SUNECMF5TEMP         ONLINE
SUNECMF5         ONLINE


SQL> alter tablespace sunecm offline;

Tablespace altered.

cp /u01/app/oracle/oradata/ORCL/datafile/sunecm01.dbf /data/oracle/datafile/ 


SQL> alter tablespace sunecm rename datafile '/u01/app/oracle/oradata/ORCL/datafile/sunecm01.dbf' to '/data/
racle/datafile/sunecm01.dbf';


SQL> alter tablespace sunecm online;        

Tablespace altered.
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_crb3zkxf_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_crb3zky3_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_crb3zky6_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_crb3zkyr_.dbf
/data/oracle/datafile/sunecm01.dbf
/data/oradata/sunecmf5/sunecmf5data01.db
/data/oradata/sunecmf5/sunecmf5data02.db
/data/oradata/sunecmf5/sunecmf5data03.db

8 rows selected.


SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME         STATUS
------------------------------ ---------
SYSTEM          ONLINE
SYSAUX          ONLINE
UNDOTBS1         ONLINE
TEMP          ONLINE
USERS          ONLINE
SUNECM          ONLINE
SUNECMF5TEMP         ONLINE
SUNECMF5         ONLINE

8 rows selected.

==============================================================

SQL> alter tablespace system offline;
alter tablespace system offline
*
ERROR at line 1:
ORA-01541: system tablespace cannot be brought offline; shut down if necessary

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_crb3zkxf_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_crb3zky3_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_crb3zky6_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_crb3zkyr_.dbf
/data/oracle/datafile/sunecm01.dbf
/data/oradata/sunecmf5/sunecmf5data01.db
/data/oradata/sunecmf5/sunecmf5data02.db
/data/oradata/sunecmf5/sunecmf5data03.db

8 rows selected.


SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME         STATUS
------------------------------ ---------
SYSTEM          ONLINE
SYSAUX          ONLINE
UNDOTBS1         ONLINE
TEMP          ONLINE
USERS          ONLINE
SUNECM          ONLINE
SUNECMF5TEMP         ONLINE
SUNECMF5         ONLINE


8 rows selected.

SQL> shut abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 2471931904 bytes
Fixed Size      2255752 bytes
Variable Size   1040188536 bytes
Database Buffers  1409286144 bytes
Redo Buffers     20201472 bytes
Database mounted.
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_crb3zkxf_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_crb3zky3_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_crb3zky6_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_crb3zkyr_.dbf
/data/oracle/datafile/sunecm01.dbf
/data/oradata/sunecmf5/sunecmf5data01.db
/data/oradata/sunecmf5/sunecmf5data02.db
/data/oradata/sunecmf5/sunecmf5data03.db

8 rows selected.


SQL> alter database rename file '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_crb3zkxf_.dbf' to '/data
oracle/datafile/o1_mf_system_crb3zkxf_.dbf';
Database altered.

SQL> alter database rename file '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_crb3zky3_.dbf' to '/data
oracle/datafile/o1_mf_sysaux_crb3zky3_.dbf';
Database altered.

SQL> alter database rename file '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_crb3zky6_.dbf' to '/da
a/oracle/datafile/o1_mf_undotbs1_crb3zky6_.dbf';
Database altered.

SQL> alter database rename file '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_crb3zkyr_.dbf' to '/data/
racle/datafile/o1_mf_users_crb3zkyr_.dbf';
Database altered.

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '/data/oracle/datafile/sunecm01.dbf'


SQL> select name from v$datafile; 

NAME
--------------------------------------------------------------------------------
/data/oracle/datafile/o1_mf_system_crb3zkxf_.dbf
/data/oracle/datafile/o1_mf_sysaux_crb3zky3_.dbf
/data/oracle/datafile/o1_mf_undotbs1_crb3zky6_.dbf
/data/oracle/datafile/o1_mf_users_crb3zkyr_.dbf
/data/oracle/datafile/sunecm01.dbf
/data/oradata/sunecmf5/sunecmf5data01.db
/data/oradata/sunecmf5/sunecmf5data02.db
/data/oradata/sunecmf5/sunecmf5data03.db

8 rows selected.


SQL> startup
ORACLE instance started.

Total System Global Area 2471931904 bytes
Fixed Size      2255752 bytes
Variable Size   1040188536 bytes
Database Buffers  1409286144 bytes
Redo Buffers     20201472 bytes
Database mounted.
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '/data/oracle/datafile/sunecm01.dbf'


SQL> recover datafile '/u01/app/oracle/oradata/ORCL/datafile/sunecm01.dbf';
ORA-01034: ORACLE not available
Process ID: 2543
Session ID: 1705 Serial number: 5


SQL> shutdown immediate
ORA-01109: database not open



SQL> recover datafile '/data/oracle/datafile/sunecm01.dbf'
Media recovery complete.
















您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

Oracle数据泵导入(`impdp`)操作中,如果遇到与表空间相关的错误,例如 `ORA-39083`、`ORA-01119` 和 `ORA-27040`,这通常意味着目标数据库中缺少必要的表空间或文件路径配置不正确。以下是详细的解决方法和注意事项。 ### 问题分析 #### 错误描述 - **ORA-39083**: 表示数据泵在尝试创建某个对象时失败。 - **ORA-01119**: 表示无法创建数据库文件(如数据文件)。 - **ORA-27040**: 表示文件创建失败,通常是由于指定的文件路径不存在或权限不足。 这些问题的根本原因可能是: 1. 导出的数据包含特定的表空间定义。 2. 目标系统上未预先创建对应的表空间。 3. 数据文件路径在目标系统上不可用或没有写入权限。 ### 解决方案 #### 方法一:手动创建表空间 在执行 `impdp` 命令之前,确保所有需要的表空间已经在目标数据库中存在。可以通过以下步骤手动创建表空间: ```sql CREATE TABLESPACE example_tbs DATAFILE '/u01/oradata/example_tbs.dbf' SIZE 100M AUTOEXTEND ON; ``` 其中 `/u01/oradata/` 是一个有效的目录路径,且 Oracle 用户对该目录具有读写权限。 #### 方法二:使用 `REMAP_TABLESPACE` 参数映射表空间 如果目标数据库中不想使用源数据库中的表空间名称,可以使用 `REMAP_TABLESPACE` 参数将源表空间映射到目标表空间。例如: ```bash impdp username/password@db_name directory=dump_dir dumpfile=example.dmp remap_tablespace=source_tbs:target_tbs ``` 此命令会将源导出文件中涉及 `source_tbs` 的内容映射到目标数据库的 `target_tbs` 中。 #### 方法三:检查并修复文件路径 确保目标系统的文件路径存在,并且 Oracle 用户有权限访问该路径。可以通过以下命令检查路径是否存在: ```bash ls -ld /u01/oradata/ ``` 如果没有权限,请修改目录权限: ```bash chown oracle:oinstall /u01/oradata/ chmod 750 /u01/oradata/ ``` #### 方法四:调整初始化参数 在某些情况下,可能需要调整数据库的初始化参数,例如 `DB_CREATE_FILE_DEST`,以确保数据文件能够自动创建在正确的路径下: ```sql ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/oradata/'; ``` ### 验证与测试 完成上述配置后,重新运行 `impdp` 命令以验证是否解决了问题: ```bash impdp username/password@db_name directory=dump_dir dumpfile=example.dmp ``` 观察日志输出,确认是否仍然出现错误。如果有新的错误信息,可以根据提示进一步排查。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luck_wy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值