云服务器网:购买云服务器和VPS必上的网站!

Oracle切换为归档模式的步骤及问题解决

直接如题
查看当前数据库模式
连接进入数据库,键入以下命令:
SQL> archive log list;
可查看当前数据库的模式,若“数据库日志模式 非存档模式”则有必要进行以下的切换流程。
在切换之前

直接如题

查看当前数据库模式


连接进入数据库,键入以下命令:


SQL> archive log list;


可查看当前数据库的模式,若“数据库日志模式 非存档模式”则有必要进行以下的切换流程。


在切换之前,请确保以下参数的设置


log_archive_dest_n 参数设置归档日志目标,其中n用数字替换。在oracle9i中n的范围是1~5,在Oracle10g中n可以取值1~10。设置方式以下:

<div scope=both;


其中,path是存储归档日志文件的文件夹路径。最后的scope=both是为了将设置利用到当前数据库实例,和将参数设置保存到SPFILE中,数据库重启时直接加载SPFILE中的参数信息。
可以设置多个归档日志目标。设置多个目标,在进行归档的时候归档日志文件可以同时保存成多个归档版本,设置多个目标是个好习惯,虽然在问题出现之前仿佛没有必要^_^


关闭数据库



SQL> shutdown immediate


关闭数据库一般不会出现甚么问题,但在数据库投入使用以后,关闭数据库一定要是迫不得已的(即便你是故意关闭它也要表现得很迫不得已,呵呵)——最好确保关闭是没有人正在使用数据库,要不然,有你等的^_^。


启动数据库为挂起(mount)状态



SQL> startup mount


行至此步,真实的问题才出现。mount了无数次始终startup不上,说是监听程序没法监听到你当前的例程了。固然,如果监听程序配置得当,此类问题是不会在这里出现的。既然是监听程序出现问题,那末就从这里入手进行解决。在oracle数据库的安装目录下(路径可能如:E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN)可以找到listener.ora这类参数文件,可用记事本打开它们进行编辑和保存。固然直接手工修改这个文件并不是明智之举,由于其中的括号可以抹杀你无数的脑细胞。在安装oracle时一般都会默许安装Net Manager这个组件,它可以帮助你轻松地配置监听程序的烦人参数:
Oracle Net配置 》监听程序 》LISTENER,在窗体右侧最上边的下拉框当选择“数据库服务”。如果你还没有监听数据库服务,那末这就是你解决问题的关键所在。添加数据库,全局数据库和SID设置为与tnsnames.ora文件中的SERVICE_NAME相同的值(注:tnsnames.ora文件与listener.ora文件在同一个目录下)。保存,则在listener.ora中就会多出一些设置,以下:



SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCL)
)
)


红色部份正式监听程序中未配置完全的内容,现在配置好它,则以上没法使数据库进入挂起状态的问题就能够解决了。注意,以上假定tnsnames.ora文件中的SERVICE_NAME就是ORCL。固然,配置好监听程序参数后并未马上利用到监听程序中,我们还需要重新载入监听程序,进入命令行:


C:\>lsnrctl
LSNRCTL> reload


重新连接一次数据库,则结果是“已连接到空闲例程”。此时再startup mount,则可顺利进入挂起状态。


在挂起状态的数据库例程中切换模式



SQL> alter system archivelog;


提示“数据库已更改”。在打开数据库后,用archive log list可以查看当前模式:数据库日志模式 存档模式。


打开数据库



SQL> alter database open;


挂起状态的数据库并不是真实可用的状态,只有打开的数据库才是运行中可以使用的例程。


结尾工作


打开自动归档


SQL> alter system set log_archive_start = true; scope=both;


手工归档;


SQL> alter system switch logfile; –可进行手工归档检测以上设置会不会已被利用到当前数据库中


设置快闪区大小


SQL> alter system set db_recovery_file_dest_size=5368709102; –5G


其他问题
在切换模式的进程中我还碰到一个问题,即在我用写字板打开SPFILE时无意中按了保存。小小的保存带来大大的问题,SPFILE是一种二进制文件,写字板虽然能打开正常浏览大部份内容却没法读取文件中第一行的文件标识(正常情况下用写字板打开文件第一行是乱码,关键啊)。保存,得,SPFILE就被改成普通文本了,人是好读了,但Oracle不认识。没办法,重新建一个呗。


重建SPFILE需要系统中的PFILE。PFILE好的地方是它是文本文件^_^一般在建数据库的同时就已创建了它,它所在的路径可能以下:E:\oracle\product\10.2.0\admin\orcl\pfile\。在此路径下有一个以init.ora.为文件名开头的文件,该文件的文件名结尾的部份是一串数字(默许情况下)。以sysdba的身份连接到数据库空闲例程(没有SPFILE数据库没法启动打开,只能连接到空闲例程如:conn / as sysdba),重建SPFILE的命令以下:


SQL> create spfile=’E:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA’ from pfile=’E:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.************’;


若重建成功,则提示“文件已创建”。创建新的SPFILE后数据库就可以正常启动了,但是,以后请记住用系统命令alter system set…… scope=spfile;去修改SPFILE的内容。

本文来源:https://www.yuntue.com/post/235871.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注