您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

Oracle数据库startup和shutdown方式

2024/3/28 16:40:22发布6次查看
整理了下关于quot;oracle数据库提供了几种不同数据库启动和关闭方式quot;,然后,自己就回去就写了个示例. 其中,就出现了1个问
整理了下关于oracle数据库提供了几种不同数据库启动和关闭方式,然后,自己就回去就写了个示例.
   其中,就出现了1个问题:
   ora-12528: tns:listener: all appropriate instances are blocking new connections
   于是到网上就大量的查阅资料,哈哈,好不错,解决方法找到了.其中红色的就是主要解决方法.下面就把我整理的东西给共享下.
   一:注意事项
要启动和关闭数据库,必须要以具有oracle 管理员权限用户登陆,通常也就是以具有sysdba权限用户登陆。一般我们常用internal用户来启动和关闭数据库(internal用户实际上是sys用户以sysdba连接同义词)。oracle数据库新版本将逐步淘汰internal这个内部用户,所以我们最还是设置dba用户具有sysdba权限。
二:启动一个数据库需要三个步骤
1、 创建一个oracle实例(非安装阶段)
2、 由实例安装数据库(安装阶段)
3、 打开数据库(打开阶段)
三:startup(启动数据库命令)
1、 startup nomount
nonount选项仅仅创建一个oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(sga)。init.ora文件定义了实例配置,包括内存结构大小和启动后台进程数量和类型等。实例名根据oracle_sid设置,不一定要与打开数据库名称相同。当实例打开后,系统将显示一个sga内存结构和大小列表,如下所示:
sql> startup nomount
oracle 例程已经启动。
total system global area 35431692 bytes
fixed size 70924 bytes
variable size 18505728 bytes
database buffers 16777216 bytesu
redo buffers 77824 bytes
2、startup mount
该命令创建实例并且安装数据库,但没有打开数据库。oracle系统读取控制文件中关于数据文件和重作日志文件内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到sga系统列表以外,系统还会给出数据库装载完毕提示。
3、startup
该命令完成创建实例、安装实例和打开数据库所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面startup mount方式下所有提示外,还会给出一个数据库已经打开提示。此时,数据库系统处于正常工作状态,可以接受用户请求。
如果采用startup nomount或者是startup mount数据库打开命令方式,必须采用alter database命令来执行打开数据库操作。例如,如果你以startup nomount方式打开数据库,也就是说实例已经创建,但是数据库没有安装和打开。这是必须运行下面两条命令,数据库才能正确启动。
alter database mount;
alter database open
4、其他打开方式
除了前面介绍三种数据库打开方式选项外,还有另外其他一些选项。
(1) startup restrict
这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有dba角色用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据导入/导出操作时不希望有其他用户连接到数据库操作数据。
(2) startup force
该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。
(3) alter database open read only;
该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能产品数据库可以采用这种方式打开。
四:数据库关闭(shutdown)
1、shutdown normal
这是数据库关闭shutdown命令确省选项。也就是说如果你发出shutdown这样命令,也即是shutdown nornal意思。
发出该命令后,任何新连接都将再不允许连接到数据库。在数据库关闭之前,oracle将等待目前连接所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何实例恢复。但需要注意一点是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。
  2、shutdown immediate
这是我们常用一种关闭数据库方式,想很快地关闭数据库,但又想让数据库干净关闭,常采用这种方式。
当前正在被oracle处理sql语句立即中断,系统中任何没有提交事务全部回滚。如果系统中存在一个很长未提交事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库所有用户退出系统,强行回滚当前所有活动事务,然后断开所有连接用户。
3、shutdown transactional
该选项仅在oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动事务执行完毕,运行该命令后,任何新连接和事务都是不允许。在所有活动事务完成后,数据库将和shutdown immediate同样方式关闭数据库。
4、shutdown abort
这是关闭数据库最后一招,也是在没有任何办法关闭数据库情况下才不得不采用方式,,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。
下面是问题解决:
ora-12528: tns:listener: all appropriate instances are blocking new connections
1:修改listener.ora的参数
sid_list_listener =
  (sid_list =
    (sid_desc =
      (sid_name = plsextproc)
      (oracle_home = c:\oracle\product\10.1.0\db_1)
      (program = extproc)
    )
    (sid_desc =
      (global_dbname = ammicly)
      (oracle_home = c:\oracle\product\10.1.0\db_1)
      (sid_name = ammicly)
    )
  )
listener =
  (description_list =
    (description =
      (address_list =
        (address = (protocol = tcp)(host = lypch )(port = 1521))
      )
      (address_list =
        (address = (protocol = ipc)(key = extproc))
      )
    )
  )
2:修改tnsnames.ora的参数
ammicly =
  (description =
    (address = (protocol = tcp)(host = lypch )(port = 1521))
    (connect_data =
      (server = dedicated)
      (service_name = ammicly)
     (ur=a)
    )
  )
extproc_connection_data =
  (description =
    (address_list =
      (address = (protocol = ipc)(key = extproc))
    )
    (connect_data =
      (sid = plsextproc)
      (presentation = ro)
    )
  )
启动数据库
sql> conn /as sysdba
sql> alter database mount;
sql> alter database open;
关闭数据库
sql> shutdown immediate;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录