最近突然发现我们的数据库启动比较麻烦,因为我们的Oracle有好几个数据库实例,每次重启的时候都需要修改ORACLE_SID(不知道有没有别的好办法,我暂时只会这样做),然后用Sqlplus连接,然后启动或者关闭,导致每次启动或者关闭都需要很多时间,而且麻烦,最近突然想到应该写一个脚本来实现,于是就开始动手做了。<o:p></o:p>
1、启动脚本<o:p></o:p>
关于Oracle的启动脚本,Oracle自己就有,所以我就用了Oracle自带的。<o:p></o:p>
具体步骤如下:<o:p></o:p>
a、 $cd $ORACLE_HOME<o:p></o:p>
b、 $cd bin<o:p></o:p>
c、 将Oracle自带的启动和关闭脚本复制一份,我们之后修改复制品就好了。<o:p></o:p>
具体复制:dbstart和dbshut这两个文件,复制之后重新命名。<o:p></o:p>
我复制了两份,分别是dbstartDB1,dbstartDB2,dbshutDB1,dbshutDB2<o:p></o:p>
2、Oratab修改<o:p></o:p>
用root用户登录,然后切换到/etc目录,然后复制oratab这个文件,复制之后重新命名。<o:p></o:p>
我复制了两份,分别是oratabDB1,oratabDB2<o:p></o:p>
然后修改这两个复制品:<o:p></o:p>
a、修改oratabDB1<o:p></o:p>
将SIDofDB1:/opt/oracle/product/9.2.0:N 修改成 SIDofDB1:/opt/oracle/product/9.2.0:Y<o:p></o:p>
b、修改oratabDB2<o:p></o:p>
将SIDofDB1:/opt/oracle/product/9.2.0:N 修改成 SIDofDB2:/opt/oracle/product/9.2.0:Y<o:p></o:p>
3、修改启动和关闭脚本<o:p></o:p>
a、修改dbstartDB1<o:p></o:p>
将ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB1<o:p></o:p>
b、修改dbshutDB1<o:p></o:p>
将ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB1<o:p></o:p>
c、修改dbstartDB2<o:p></o:p>
将ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB2<o:p></o:p>
d、修改dbshutDB2<o:p></o:p>
将ORATAB=/etc/oratab 修改成 ORATAB=/etc/oratabDB2<o:p></o:p>
这样修改之后,发觉已经可以打开和关闭数据库了,但是有时候关闭数据库非常缓慢,原来是关闭脚本有点问题。<o:p></o:p>
于是我修改了dbshutDB1,编辑dbshutDB1,在shutdown后添加了一个参数immediate, 这样就可以很快地关闭数据库了。<o:p></o:p>
同样也修改了dbshutDB2,不过这样修改有点不是很好,还是原来的比较安全。<o:p></o:p>
4、结果<o:p></o:p>
前面已经作好了所有的准备工作,于是,就开始针对自己的数据库制作启动脚本了。<o:p></o:p>
a、编写DB1.sh<o:p></o:p>
内容如下:<o:p></o:p>
#!/bin/sh<o:p></o:p>
#Created by yaogao 2006-12-07<o:p></o:p>
#Mail: yaogao@gmail.com<o:p></o:p>
ORACLE_HOME=/opt/oracle/product/9.2.0<o:p></o:p>
export ORACLE_SID=DB1<o:p></o:p>
case $1 in<o:p></o:p>
start)<o:p></o:p>
echo "Start DB1.................."<o:p></o:p>
. $ORACLE_HOME/bin/dbstartDB1 &<o:p></o:p>
lsnrctl start DB1 &<o:p></o:p>
;;<o:p></o:p>
stop)<o:p></o:p>
echo "Stop DB1..................."<o:p></o:p>
. $ORACLE_HOME/bin/dbshutDB1 &<o:p></o:p>
lsnrctl stop DB1 &<o:p></o:p>
esac<o:p></o:p>
echo "Operation terminated.........."<o:p></o:p>
b、编写DB2.sh<o:p></o:p>
内容如下:<o:p></o:p>
#!/bin/sh<o:p></o:p>
#Created by yaogao 2006-12-07<o:p></o:p>
#Mail: yaogao@gmail.com<o:p></o:p>
ORACLE_HOME=/opt/oracle/product/9.2.0<o:p></o:p>
export ORACLE_SID= DB2<o:p></o:p>
case $1 in<o:p></o:p>
start)<o:p></o:p>
echo "Start DB2.................."<o:p></o:p>
. $ORACLE_HOME/bin/ dbstartDB2 &<o:p></o:p>
;;<o:p></o:p>
stop)<o:p></o:p>
echo "Stop DB2..................."<o:p></o:p>
. $ORACLE_HOME/bin/ dbshutDB2 &<o:p></o:p>
esac<o:p></o:p>
echo "Operation terminated.........."<o:p></o:p>
c、编写启动和关闭脚本<o:p></o:p>
启动脚本:<o:p></o:p>
#!/bin/sh<o:p></o:p>
#Created by yaogao 2006-12-07<o:p></o:p>
#Mail: yaogao@gmail.com<o:p></o:p>
./db1.sh start<o:p></o:p>
./db2.sh start<o:p></o:p>
关闭脚本:<o:p></o:p>
#!/bin/sh<o:p></o:p>
#Created by yaogao 2006-12-07<o:p></o:p>
#Mail: yaogao@gmail.com<o:p></o:p>
./db1.sh stop<o:p></o:p>
./db2.sh stop<o:p></o:p>
<o:p> </o:p>
这样就大功告成了,如果还有DB3,用同样的方法处理就可以了。<o:p></o:p>
5、关于系统环境<o:p></o:p>
Oracle9i,Redhat9<o:p></o:p>
分享到:
相关推荐
在Oracle数据库中,启动数据库通常涉及几个步骤,包括启动实例(instance)和打开数据库(database)。实例是Oracle内存结构和后台进程的集合,而数据库则是实际的数据文件。以下是一个手动启动数据库的通用流程: ...
综上所述,通过编写bat脚本结合Java的定时任务功能,我们可以实现Oracle数据库的自动备份,确保数据的安全性和可恢复性。这种方法既方便又高效,尤其适合那些需要定期备份大量数据的大型企业或组织。在实际应用中,...
RAC是Oracle数据库的一个关键特性,它允许多个实例同时访问同一数据库,从而实现高可用性和负载均衡。在Oracle RAC环境中,确保所有组件健康运行至关重要,因为任何故障都可能影响到整个集群的稳定性和性能。 这个...
Oracle 10g的启动和关闭过程涉及到多个步骤,主要包括以下几个关键知识点: 1. **Oracle服务注册**:在Windows中,Oracle服务通常作为Windows服务注册,这样可以通过“服务”管理工具或命令行(如`services.msc`或`...
总之,了解如何创建和使用Oracle服务启动和关闭脚本是数据库管理员必备的技能之一。正确地管理和执行这些脚本有助于保持数据库系统的稳定性和可用性。在遇到权限问题时,务必以管理员权限运行,以确保脚本能够正确...
本文将围绕“Oracle常用的数据库脚本”这一主题,详细讲解Oracle数据库管理中的一些关键脚本和命令,帮助你更好地理解和操作Oracle数据库。 首先,Oracle数据库脚本通常是指SQL(Structured Query Language)脚本,...
本文将分享8个常用的shell脚本,涵盖了数据库实例的可用性、监听器的可用性、表空间的使用情况、无效对象的检查等多个方面。 一、监控Oracle数据库实例的可用性 Oracle数据库实例的可用性是DBA最关心的问题之一。...
"Oracle创建数据库脚本"这个主题涉及到的是如何使用SQL脚本来创建一个新的Oracle数据库,这通常包括一系列的步骤和配置。在这个过程中,我们不仅需要理解数据库的基本架构,还需要熟悉Oracle的数据文件、控制文件、...
假设在同一台机器上有两个数据库实例DB1和DB2,以下是一种手动启动这两个实例的方法: 1. **设置环境变量**:首先需要设置`ORACLE_SID`环境变量,指定当前要操作的数据库实例名。 ```bash export ORACLE_SID=DB1 ...
imp方式批量导入dmp文件。oracle数据库bat脚本。需要配置数据库的链接信息和dmp路径信息。
Oracle数据库的启动分为多个阶段,包括实例启动(Instance Startup)、数据文件检查(Redo Log Checkpoint)、恢复过程(Recovery)以及监听器启动(Listener Startup)。通过自动启动脚本,我们可以简化这个过程,...
在提供的压缩包中,我们有两个批处理文件:`Start Oracle.bat`和`Stop Oracle.bat`,分别用于启动和关闭Oracle数据库实例。 1. **启动Oracle数据库**: - `Start Oracle.bat`文件很可能包含了启动Oracle数据库实例...
oracle数据库同步perl脚本示例 其中有2个文件,一个是 perl同步脚本,另一个是存储过程; 大致思路是:perl脚本从数据库A同步数据至库B的临时表中,再通过存储过程将库B中的临时数据过滤导入正式数据当中。
关于最耗资源、表空间使用情况、查看锁等监控脚本整理。
Oracle12C 向达梦8(DM8)迁移是一个涉及多个步骤的技术过程,主要目的是将现有的Oracle数据库系统顺利地转换到达梦数据库平台,以利用其特定的优势或满足特定的业务需求。以下是对这个迁移过程的详细说明: 一、...
在提供的压缩包`NACOS-整合oracle-11g`中,应该包含一个或多个SQL脚本文件,用于在Oracle 11g中创建这些表。执行这些脚本以初始化Nacos所需的数据库结构。例如,可能有一个名为`nacos-schema.sql`的文件,包含了创建...
在生成基于Oracle的jBPM...这涉及到对Java Persistence API (JPA)、Hibernate框架、Oracle数据库的使用以及数据库连接配置等多个IT领域的知识。务必确保每个环节都正确无误,以确保jBPM能顺利运行在Oracle环境中。
在日常管理中,启动和关闭Oracle服务是必不可少的操作,通常可以通过操作系统命令或者专门的脚本来完成。本篇文章将深入讲解如何使用"stop.bat"和"startup.bat"这两个批处理脚本来管理Oracle服务。 首先,我们来看`...
此脚本使用了多个`expdp`命令行,分别针对不同的所有者进行数据备份。每个命令的结构如下: - **用户名/密码**:登录Oracle数据库的身份认证信息。 - **@连接字符串**:指定要连接的目标数据库实例。 - **file=**:...