更改Oracle数据库的非归档模式需要重新启动数据库,在mount模式下修改,简要步骤
1 以shutdown immediate方式关闭数据库
2 启动实例到mount状态
3 更改运行非模式并打开数据库
操作步骤:连接到数据库(必须以管理员身份登录) conn test/test@orcl as sysdba 或者 conn /as sysdba 连接到空闲例程
连接时 如果出现
SQL> conn cdws/cdws@orcl as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
这样的错误,首先到sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)
SQLNET.AUTHENTICATION_SERVICES= (NONE) 注释掉这行
或者
sqlplus “/ as sysdba” 连不上,报ora-01031:insufficient privileges解决方法
注意多个数据库实例时候,set ORACLE_SID=”,
检查sqlnet.ora(WINDOWS下位于%ORACLE_HOME%NETWORKADMIN目录)是否包含这句:SQLNET.AUTHENTICATION_SERVICES=(NTS),没有的话加上
检查登陆windows的用户(administrator或安装Oracle时候使用的用户)是不是在包含在ORA_DBA组中,域用户没有连上域服务器时就可能出现这种现象。
要保证 remote_login_passwordfile 参数 = EXCLUSIVE .
看看是否需要使用orapassw生成口令文件
1 登录数据库查看数据库的归档状态
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2923
Next log sequence to archive 2925
Current log sequence 2925
2 关闭数据库
SQL>shutdown immediate;
数据库已关闭
3 启动数据库到mount状态
SQL>startup mount;
可能出现的错误
SQL> startup mount;
ORA-24324: 未初始化服务句柄
ORA-01041: 内部错误, hostdef 扩展名不存在
(有时候会出现各种错误,最靠谱的方法是重新连接到一个新的例程,在执行)
如果启动失败可以尝试如下操作:
本机登录,如果有多个数据库,应该先设置登录ORACLE_SID
windows 下打开cmd窗口 set ORACLE_SID=实例名
linux unix 下 export ORACLE_SID=实例名
之后输入sqlplus /nolog
conn /as sysdba;
startup mount; 即可
4 启动归档模式
SQL>alter database noarchivelog; (非归档模式为:alter database noarchivelog)
如果报错:
SQL> alter database noarchivelog;
alter database noarchivelog
*
ERROR at line 1:
ORA-38774: cannot disable media recovery - flashback database is enabled
先关闭flashback
SQL> alter database flashback off;
Database altered.
再更改为非归档模式
SQL> alter database noarchivelog;
Database altered.
5 打开数据库
SQL>alter database open;