
1、由于oracle运行在Linux系统里面,第一步,我们要连接Linux系统。
2、然后我们转换到oracle安装用户里面。 我的是 oracle。
3、然后我们运行oracle的环境里的变量, 用来输入相关命令。
4、进去oracle的控制台。输入一个命令: sqlplus / as sysdba。
5、如果要启动数据库,就输入命令: startup。
6、如果关闭数据库, 就输入命令: shutdown immediate。
mysql windows 可以这样 *** 作; 不过最好还是写脚本却执行吧,这里的文件如果 *** 作过一次后需要手动删除,不然下次执行会报错。
SELECT CONCAT('KILL ',id,';') FROM information_schemaprocesslist INTO OUTFILE 'D:\\tmptxt';source D:\\tmptxt;
php脚本如下:
$result = mysql_query("SHOW FULL PROCESSLIST");while ($row=mysql_fetch_array($result)) {
$process_id=$row["Id"];
if ($row["Time"] > 200 ) {
$sql="KILL $process_id";
mysql_query($sql);
}
}
1)单机模式下:
如果开启归档,请保证
log_archive_start=true --开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false。10g之后废除该参数,不需要设置。
log_archive_dest =<archivelog存放路径> ---归档日志存放路径
alter system set log_archive_dest_1="location=f:\disk5\offlinelog\mandatory" scope=spfile; ---为了增加归档日志的冗余来保证其安全,可以通过修改参数文件中的log_archive_dest_n参数,其中n为1~10
log_archive_format ="CX%TS%SARC" ---归档日志文件名格式
alter system set log_archive_max_processes = 3 ---启动多个归档后台进程以避免由于ARCn进程跟不上LGWR而造成的数据库系统效率的下降。
注意:如果是OPS/RAC环境,需要先把parallel_server = true注释掉,然后执行如下步骤,最后用这个参数重新启动
1、开启归档:
a 关闭数据库shutdown immediate
b startup mount
c alter database archivelog
d alter database opne
2、关闭归档:
a 关闭数据库shutdown immediate
b startup mount
c alter database noarchivelog
d alter database open
归档信息可以通过如下语句查看
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination E:oracleora92databasearchive
Oldest online log sequence 131
Next log sequence to archive 133
Current log sequence 133
2)RAC模式下:
1关闭所有的instance
2在节点1上设置以下参数,如果使用spfile就先生成pfile再修改
CLUSTER_DATABASE=FALSE
log_archive_dest=<归档路径>
log_archive_start=true
log_archive_format=<归档文件格式>
3 以exclusive模式启动数据库
SQL> startup mount exclusive pfile=‘xxxxxx’
4 启动归档模式
SQL> Alter database archivelog
5打开数据库
SQL> alter database open
6关闭数据库并修改初始化参数
SQL> shutdown immediate
CLUSTER_DATABASE=TRUE
7启动所有的instance,记得先生成spfile
8核对归档,模式是否启动
SQL> archive log list
======================
以下步骤在node1机器上 *** 作,node2保持down。在所有的 *** 作完成后再打开node2的数据库。。。
SQLPLUS>connect SYS/PASSWORD
SQLPLUS>ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE; ### 10gR2之后不用修改该参数
SQLPLUS>shutdown immediate;
SQLPLUS>startup mount exclusive;
SQLPLUS>alter database noarchivelog;
SQLPLUS>ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=SPFILE;
SQLPLUS>shutdown immediate;
SQLPLUS>STARTUP
非归档改为归档
SQLPLUS>connect SYS/PASSWORD
SQLPLUS>ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE;
SQLPLUS>shutdown immediate;
SQLPLUS>startup mount exclusive;
SQLPLUS>alter database archivelog;
SQLPLUS>ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=SPFILE;
SQLPLUS>shutdown immediate;
SQLPLUS>STARTUP
====================
相关数据字典
V$ARCHIVED_LOG
V$ARCHIVE_DEST
V$LOG_HISTORY
V$DATABASE
启动数据库服务器(posgres用户)
[postgres@localhost bin]$ postgres D /opt/postgresql/data/ > /opt/postgresql/log/pg_serverlog >& &
[]
当然如果设置了环境变量
PGDATA=/opt/postgresql/data
export PGDATA
后可使用pg_ctl工具进行启动:
[postgres@localhost log]$ pg_ctl start l /opt/postgresql/log/pg_serverlog
pg_ctl: another server might be running; trying to start server anyway
pg_ctl: could not start server
Examine the log output
[postgres@localhost log]$
因为之前已经启动所以打印another server might be running此时查看日志有如下信息:
[postgres@localhost log]$ cat pg_serverlog
FATAL: lock file postmasterpid already exists
HINT: Is another postmaster (PID ) running in data directory /opt/postgresql/data
[postgres@localhost log]$
当然最简的启动方式是
[postgres@localhost ~]$ pg_ctl start
server starting
[postgres@localhost ~]$ LOG: database system was shut down at :: CST
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
如果要在 *** 作系统启动时就启动PG可以在/etc/rcd/rclocal 文件中加以下语句
/opt/postgresql/bin/pg_ctl start l /opt/postgresql/log/pg_serverlog D /opt/postgresql/data
关闭服务器
最简单方法
[postgres@localhost ~]$ pg_ctl stop
waiting for server to shut down done
server stopped
与Oracle相同在关闭时也可采用不同的模式简介如下
SIGTERM
不再允许新的连接但是允许所有活跃的会话正常完成他们的工作只有在所有会话都结束任务后才关闭这是智能关闭
SIGINT
不再允许新的连接向所有活跃服务器发送 SIGTERM(让它们立刻退出)然后等待所有子进程退出并关闭数据库这是快速关闭
SIGQUIT
令 postgres 向所有子进程发送 SIGQUIT 并且立即退出(所有子进程也会立即退出)而不会妥善地关闭数据库系统这是立即关闭这样做会导致下次启动时的恢复(通过重放 WAL 日志)我们推荐只在紧急的时候使用这个方法
SIGKILL
此选项尽量不要使用这样会阻止服务器清理共享内存和信号灯资源那样的话你只能在启动服务器之前自己手工做这件事另外SIGKILL 直接把 postgres 杀掉而不会等它把信号中继给它的子进程因此我们还需要手工杀掉每个独立子进程
使用方法举例
[postgres@localhost ~]$ pg_ctl stop o SIGTERM
LOG: received smart shutdown request
LOG: autovacuum launcher shutting down
waiting for server to shut downLOG: shutting down
LOG: database system is shut down
done
server stopped
[postgres@localhost ~]$
最快速关闭方法kill postgres 进程
[postgres@localhost ~]$ kill INT `head /opt/postgresql/data/postmasterpid`
[postgres@localhost ~]$ LOG: received fast shutdown request
LOG: aborting any active transactions
LOG: autovacuum launcher shutting down
LOG: shutting down
LOG: database system is shut down
附postgre启动后的进程如下:
[postgres@localhost ~]$ ps ef|grep post
root : pts/ :: su postgres
postgres : pts/ :: bash
postgres : pts/ :: /opt/postgresql/bin/postgres
postgres : :: postgres: writer process
postgres : :: postgres: wal writer process
postgres : :: postgres: autovacuum launcher process
postgres : :: postgres: stats collector process
postgres : pts/ :: ps ef
postgres : pts/ :: grep post
[postgres@localhost ~]$
oracle的启动和关闭
一、sqlplus方式:
用sqlplus来连接到Oracle
Sqlplus /nolog 是以不连接数据库的方式启动sqlplus
Connect /as sysdba 是以DBA身份连接到oracle
or35gif
启动
or36gif
Startup就可以启动了。
不过oracle启动模式有3种:
l Startup nomount (nomount模式)启动实例不加载数据库。
l Startup mount (mount模式)启动实例加载数据库但不打开数据库
l Startup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令
Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,
所以说:
1) 创建新数据库
2) 重建控制文件
这2种 *** 作都必须在这个模式下进行。
Mount模式中oracle只装载数据库但不打开数据库,所以说:
1) 重命名数据文件
2) 添加、删除和重命名重做日子文件
3) 执行数据库完全恢复 *** 作
4) 改变数据库的归档模式
这4种 *** 作都必须在这个模式下进行
Open模式(就是我们上面的startup不带任何参数的)正常启动。
当然这3种模式之间可以转换:
Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式)
当然还有其它一些情况,在我们open模式下可以将数据库设置为非受限状态和受限状态
在受限状态下,只有DBA才能访问数据库,所以说:
1) 执行数据导入导出
2) 使用sqlloader提取外部数据
3) 需要暂时拒绝普通用户访问数据库
4) 进行数据库移植或者升级 *** 作
这4种 *** 作都必须在这个状态下进行
在打开数据库时使用startup restrict命令即进入受限状态。
or37gif
使用alter system disable restricted session命令即可以将受限状态改变为非受限状态。
or38gif
使用alter system enable restricted session命令可以将非受限状态变为受限状态
or39gif
使用alter database open read only可以使数据库进入只读状态。
使用alter database open read write 可以使数据库进入读写状态。
当然在某些情况下可能是用上述各种启动方式都无法成功启动数据库,这个时候就要使用startup force命令来强行启动数据库。当然谁都不想碰到这种情况:)
or40gif
c关闭数据库
1)正常关闭 shutdown
2) 立即关闭 shutdown immediate
3) 关闭事务 shutdown transactional
4) 强行关闭 shutdown abort,当然谁都不想碰到这种情况。
二、OEM为例
Oracle Enterprise Management(OEM),
跟第一小节讲的Sqlplus /nolog ,Connect /as sysdba 这2个命令差不多的 *** 作如图:
or29gif
or30gif
or31gif
按照上面的一步步 *** 作就能够连接到数据库。
下面是如何启动和关闭数据库:
or32gif
点击我们前几章创建的ORADB01这个数据库树中的配置选项,这个里面的:
1)已启动 对应 Nomount模式
2)已转载 对应 mount模式
3)打开 对应 open模式
当你点击应有按钮之后就会进入如下对话框
or33gif
1)正常 对应 正常关闭 shutdown
2) 立即 对应 立即关闭 shutdown immediate
3) 事务处理 对应 关闭事务 shutdown transactional
4) 中止 对应 强行关闭 shutdown abort
确定之后出现如下对话框
or34gif
限制对数据库访问 对应 alter system disable restricted session
alter system enable restricted session
只读模式 对应 alter database open read only
alter database open read write
简单吧,sqlplus的一大堆命令到OEM中变成了几个按钮罢了。
3windows控制台
or41gif
这个熟悉吧:
oracle Agent 用于OEM管理结构
oracle>
关闭的指令是 shutdown immediate ;
如果有正在增删改之类的 *** 作,数据库会等 *** 作完成后进行关机,如果没有进程在做增删改 *** 作则很快就会关闭数据库了。
如果一直没有关闭系统,你可以尝试用 shutdown abort 来强制关闭oracle系统,不过不建议这么做,容易引起数据错乱或者发生未知后果的错误。
以上就是关于怎样启动和关闭oracle数据库全部的内容,包括:怎样启动和关闭oracle数据库、sql中如何终止正在运行的数据库进程、如何启动或关闭数据库的归档模式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)