您的位置:首页 > 数据库 > Oracle

启动/关闭Oracle与冷备份数据库

2009-12-09 11:31 387 查看
Oracle数据库提供了几种不同的数据库启动和关闭方式,对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。另外也可通过图形用户工具(GUI)的Oracle Enterprise Manager来完成系统的启动和关闭,图形用户界面Instance Manager非常简单,这里不再详述。 从Oracle 8i以后,系统将Server Manager的所有功能都集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQL*Plus来完成,而不再另外需要Server Manager,但系统为了保持向下兼容,依旧保留了Server Manager工具。 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接的同义词)。新版本Oracle数据库将逐步淘汰INTERNAL这个内部用户,所以我们最好还是设置DBA用户具有SYSDBA权限。 数据库的启动(StartUp) 启动一个数据库需要三个过程:

a 创建一个Oracle实例 (未装载阶段)  

 b 由实例安装数据库 (装载阶段)   

c 打开数据库 (打开阶段)

在Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。

1. STARTUP NOMOUNT NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表。

2. STARTUP MOUNT 该命令创建实例并装载数据库,但未打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"的提示。

3. STARTUP 该命令全部完成创建实例、安装实例和打开数据库的三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。 注: ALTER DATABASE MOUNT;    ALTER DATABASE OPEN; 如果采用STARTUP NOMOUNT或者是STARTUP MOUNT的数据库打开命令方式, 要装载数据库、打开数据库必须执行ALTER DATABASE命令来操作。

4. 其他打开方式 除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

(1) STARTUP RESTRICT 这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操作数据。

(2) STARTUP FORCE 该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。

(3) ALTER DATABASE OPEN READ ONLY; 该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。 数据库的关闭(ShutDown) 对于数据库的关闭,有四种不同的关闭选项:

1、SHUTDOWN NORMAL 这是数据库关闭SHUTDOWN命令的默认选项。 发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。 但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。

2、SHUTDOWN IMMEDIATE 这是较常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。 当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

3、SHUTDOWN TRANSACTIONAL 该选项仅在Oracle 8i后才可用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

4、SHUTDOWN ABORT 一般应谨慎采用。所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。 当数据库处于一种非正常工作状态,用 shutdown normal或者shutdown immediate命令不能关闭数据库时,或者 在启动数据库实例时遇到问题,可以采用此方式, 表1上述四种关闭数据库的不同方式的区别和联系。

Abort Immediate Transaction Normal 关闭方式 × × × × 允许新的连接 × × × × 等待直到当前会话中止 × × × √ 等待直到当前事务中止 × × √ √ 强制Checkpoint × √ √ √ 数据库的冷备份(Offline Backup) Oracle数据库的冷备份是操作系统级的备份,必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是: ·是非常快速的备份方法(只需拷贝文件) ·容易归档(简单拷贝即可) ·容易恢复到某个时间点上(只需将文件再拷贝回去) ·能与归档方法相结合,作数据库“最新状态”的恢复。 ·低度维护,高度安全。 但冷备份也有如下不足: ·单独使用时,只能提供到“某一时间点上”的恢复。 ·在实施备份的全过程中,数据库必须处于关闭状态而不能作其它工作。 ·若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。 ·不能按表或按用户恢复。 冷备份中必须拷贝的文件包括: ·所有数据文件(Data Files) ·所有控制文件(Control Files) ·所有联机日志 (REDO LOG Files) ·Init.ora文件(可选) 如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库, 并将所备份的信息拷贝到磁带上(使用户可以工作;拷贝的同时,数据库也可以工作)。 下面是做冷备份的完整例子: (1) 关闭数据库$sqldba lmode=y SQLDBA > connect internal; SQLDBA > shutdown normal; (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件 SQLDBA >! cp < file > < backup directory > (3) 重启Oracle数据库 $sqldba lmode=y SQLDBA > connect internal; SQLDBA > startup; 备注: 如果必要,可以对要备份的文件进行压缩打包: wzzip.exe BakPath%filename%.zip pathname*.*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: