实验一Oracle数据库的四种关闭方法实验
一、前情提示
Orcale数据库共有四种关闭方式,分别是:
方式 | 命令 |
immediate | shutdown immediate |
TRANSACTIONAL | shutdown TRANSACTIONAL |
normal | shutdown normal |
abort | shutdown abort |
接下来一一讨论
注:接下来所有操作均在oracle用户下执行
二、前提步骤
1.启动数据库
#1、启动实例
startup nomount
#2、mout状态,打开控制文件
alter database mount;
#3、打开数据库,即打开所有记录在控制文件里面的数据文件
alter database open;
#4、直接打开数据库
startup #(默认nomount->mount->open)
#5、关闭数据库
shutdown
#6、启动到只读状态
#6.1、先启动到mount状态
startup mount
#6.2、只读方式打开数据库
alter database open read only;
2.创建新用户
#创建一个新用户u1
grant connect,resource to u1 identified by u1;
#赋予用户u1创建表的权利
grant unlimited tablespace to u1;
3.登录数据库
准备两个窗口,如下图
分别在两个窗口用于等于用户sys和用户u1
窗口1sys用户登录
export ORACLE_SID=orcl
sqlplus / as sysdba
窗口2用户u1登录
export ORACLE_SID=orcl
sqlplus u1/u1
三、实验步骤
3.1测试immediate关闭模式
注:每次使用命令关闭数据库后,都需要重新startup
重启数据库来实验
3.1.1测试新会话连接
1.在一个窗口输入shutdown immediate
命令
2.在另外一个窗口尝试登录数据库:sqlplus u1/u1
3.结果:immediate关闭模式下不允许新会话连接
3.1.2测试等待会话结束
1.打开数据库、u1用户连接到数据库
2.sys用户下使用shutdown immediate
命令
3.u1用户下执行:select * from tab;
4.测试结果:immediate关闭模式下不会等待会话结束
3.1.3 测试事务
1.打开数据库、u1用户连接到数据库
2.u1用户进行一个事务
3.sys用户下使用shutdown immediate
命令
4.u1用户执行:select * from t1;
5.测试结果:immediate关闭模式下不会等待事物结束
3.2测试TRANSACTIONAL关闭模式
注:每次使用命令关闭数据库后,都需要重新startup
重启数据库来实验
3.2.1测试新会话连接
1.在一个窗口输入shutdown TRANSACTIONAL
命令
2.在另外一个窗口尝试登录数据库:sqlplus u1/u1
3.测试结果:TRANSACTIONAL关闭模式不允许新会话连接
3.2.2测试等待会话结束
1.打开数据库、u1用户连接到数据库
2.sys用户下使用shutdown TRANSACTIONAL
命令看是否能够关闭数据库
3.u1用户执行:select * from tab;
4.测试结果:TRANSACTIONAL关闭模式不会等待会话结束
3.2.3测试等待事物结束
1.打开数据库、u1用户连接到数据库
2.u1用户进行一个事务
3.sys用户下使用shutdown TRANSACTIONAL
命令看是否能够关闭数据库
4.u1用户执行:commit;
5.提交后数据库关闭
6.测试结果:TRANSACTIONAL关闭模式会等待实务结束
3.3测试normal关闭模式
注:每次使用命令关闭数据库后,都需要重新startup
重启数据库来实验
3.3.1测试新会话连接
1.在一个窗口输入shutdown normal
命令
2.在另外一个窗口尝试登录数据库:sqlplus u1/u1
3.测试结果:normal关闭模式下不允许新会话连接
3.3.2测试等待会话结束
1.打开数据库、u1用户连接到数据库
2.使用shutdown normal
命令看是否能够关闭数据库
3.u1用户执行:select * from tab;
显示结果后u1执行:quit ;
4.数据库关闭成功
5.测试结果:normal关闭模式下允许等待会话结束
3.3.3测试等待事务结束
1.打开数据库、u1用户连接到数据库
2.u1用户进行一个事务
3.使用shutdown normal
命令看是否能够关闭数据库
4.u1用户执行:commit;
结束事务:quit;
此时数据库可以关闭
5.查看数据库状态
6.测试结果:normal关闭模式下会等待事物结束
3.4测试abort关闭模式
注:每次使用命令关闭数据库后,都需要重新startup
重启数据库来实验
shutdown abort关闭模式属于异常关闭,他会立刻关闭数据库,不会等待任何的操作。因此这种模式关闭数据库速度是最快的
3.4.1不允许新会话连接
3.4.2不会等待会话结束
3.4.3不会等待事务结束
实验二 配置与连接
一、初始化参数文件
注:接下来的实验有些文件是用作者名字命名
1.进入实验目录
#进入dbs 目录
cd $ORACLE_HOME/dbs
2.创建一个实例
vi inittxp.ora #这里用的是作者本名 注:命名格式init实例名.ora
#.ora文件中添加以下参数
memory_target=1024M
db_name=txp
control_files='/u01/app/oracle/oradata/txp/control01.ctl'
undo_tablespace=undotbs1
3.编辑数据库启动脚本
#创建一个启动脚本create_db.sql
vi create_db.sql
#脚本内容 注:这里用的是作者自己的名字
CREATE DATABASE txp
USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/txp/redo1a.log') SIZE 50M,
GROUP 2 ('/u01/app/oracle/oradata/txp/redo2a.log') SIZE 50M
CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL DATAFILE
'/u01/app/oracle/oradata/txp/system01.dbf' SIZE 325M
SYSAUX DATAFILE '/u01/app/oracle/oradata/txp/sysaux01.dbf' SIZE 325M
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/txp/temp01.dbf' SIZE 20M
UNDO TABLESPACE undotbs1
DATAFILE '/u01/app/oracle/oradata/txp/undotbs01.dbf' SIZE 200M;
4.创建数据库存放的目录
mkdir /u01/app/oracle/oradata/txp
#注:这里是为了让数据有产生一系列配置文件,以用来防止接下来创建数据库不会报错
5.启动实例
#这里的实例名是第二步你所创建的
export ORACLE_SID=txp
#进入数据库
sqlplus / as sysdba
6.执行脚本
#SQL指令下执行以下指令
#启动数据库脚本
@create_db.sql
#启动脚本完成后,创建数据字典视图和内嵌的存储过程,这样数据库就完备并且可以使用
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
7.这样,一个完整的数据库就create完毕
二、连接
1.进入实验目录
cd $ORACLE_HOME/network/admin
2.编辑tnsnames.ora文件
vi tnsnames.ora
#在有orcl连接名的基础下,再添加txp和PROD1连接名
txp =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pg-xc2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = txp)
)
)
PROD1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pg-xc2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD1)
)
)
3.创建一个密码文件
#进入密码文件存放目录
cd $ORACLE_HOMEs
#创建密码文件
orapwd file=orapwtxp force=y password=oracle format=12
#注:orapw*** ***是实例名字
4.使用别名连接到数据库
使用别名连接前,需要以下步骤
#声明想别名连接的名字(区别大小写),
export ORACLE_SID=txp#txp这里可以替换其他你想别名的名字
#以数据库管理员身份登录
sqlplus / as sysdba
#进入数据库SQL>后
startup
#启动数据库后会启动你export名字的实例
#quit退出SQL>命令行,数据在后台运行,并不会退出
quit
使用lsnrctl status
查看监听
txp实例已开启
#使用连接别名连接到数据库
sqlplus sys/oracle@txp as sysdba
4.分别添加orcl和prod1的别名,分别测试连接是否可以
注:在2.编辑tnsnames.ora文件步骤中已经添加过了,实验步骤跟步骤4类似,这里只给出实验结果图
orcl别名连接
PROD1别名连接