ORACLE实例静默安装

前言

最近接到了一个任务,部署一下项目,需要在数据库服务器上新建一个实例,以前没有做过这类的工作,忙活了一下午,也算是完成了,写一个博客,记录一下,以后或许用的着。

新建实例

  1. 查找dbca.rsp文件位置:find . -name dbca.rsp,如下图所示。
    在这里插入图片描述
  2. 找到该文件,拷贝一份并进行修改,主要修改内容如下:
OPERATION_TYPE = "createDatabase" 注:该变量取决你的需求;
GDBNAME = "YCDF" 改为你想要创建的实例名称;
SID = "YCDF"  改为你想要创建的实例名称;
TEMPLATENAME ="General_Purpose.dbc" 使用的模板;
CHARACTERSET = "AL32UTF8" 字符集;
NATIONALCHARACTERSET= "UTF8" 字符集;
  1. 将更改好的dbca.rsp放到服务器上,执行下面的命令:$dbca -createDatabase -silent -responseFile /u01/app/oracle/database/response/mydb.rsp
    需要注意,执行该命令需要在ORACLE_HOME/bin目录下,如果不知道,可以通过echo $ORACLE_HOME命令获取目录;
    在这里插入图片描述
    执行后会出现安装进度,如下图所示,
    在这里插入图片描述
  2. 新增监听
    在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin(可能不一致)目录下找到listener.ora 文件 新增刚才实例的监听;
	SID_LIST_LISTENER = 
(SID_LIST =
	(SID_DESC =
	 (GLOBAL_DBNAME = 实例名)
         (ORACLE_HOME = ORACLE_HOME地址)
	 (SID_NAME =实例名)
	)
)
  1. 重启监听:
$ lsnrctl status –查询监听状态
$ lsnrctl stop  --关闭所有监听 (后面可加监听名称 关闭指定监听)
$ lsnrctl start  --开启所有监听 (后面可加监听名称 开启指定监听)
$ lsnrctl reload  --重启监听
  1. 开启实例:
export ORACLE_SID=   --指定当前实例
sqlplus /nolog –进入sqlplus 
SQL>conn /as sysdba –连接实例(如果实例没启动 会提示无法连接,可开启后重新连接)
SQL>startup –启动实例 
SQL> shutdown immediate –关闭实例

二、创建表空间和用户

实例安装完成并启动,通过上面的方式连接上实例,就可以创建表空间,创建用户并赋权了,具体操作如下:

  1. 创建数据库表空间,下面的代码不可直接使用哦;
CREATE TABLESPACE TBS_空间名 DATAFILE'/home/oracle/datafile/test/TBS_test.DBF(文件路径)'
SIZE 1G
AUTOEXTEND ON 
NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;

  1. 创建临时表空间,配置用户和数据用户都使用此临时表空间;
create temporary tablespace temp 
tempfile '/home/oracle/datafile/temp/temp.dbf'  --路径自定义
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local; 
alter database default temporary tablespace orcl_temp

  1. 创建配置用户并指定表空间;
create user user_name(--用户名) identified by password;(--密码)  
default tablespace TBS_空间名  
temporary tablespace temp --临时表空间名; 

或修改用户表空间

alter user user_name default tablespace TBS_空间名 temporary tablespace temp ;
ALTER USER user_name QUOTA UNLIMITED ON TBS_空间名; 
  1. 给用户授予权限;
GRANT RESOURCE ,CONNECT,DBA TO user_name;
GRANT SELECT ANY TABLE TO user_name;
GRANT DELETE ANY TABLE TO user_name;
GRANT UPDATE ANY TABLE TO user_name;
GRANT SELECT ANY DICTIONARY TO user_name; 
GRANT CREATE PROCEDURE TO user_name; --如果执行不成功,把分号去掉试试
GRANT SCHEDULER_ADMIN TO user_name;
GRANT MANAGE SCHEDULER TO user_name;
GRANT CREATE VIEW TO user_name; 
GRANT CREATE MATERIALIZED VIEW TO user_name;
GRANT CREATE ANY TABLE TO user_name;
GRANT CREATE DATABASE LINK TO user_name; 
GRANT CREATE ROLE TO user_name; 
GRANT CREATE SYNONYM TO user_name;

修改数据库字符集;

如果不修改字符集,导入的数据汉字可能乱码,影响正常业务;

SQL> select userenv('language') from dual; --查看当前字符集

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.WE8MSWIN1252
--------------------- 

SQL> alter system enable restricted session; --将数据库置于restricted mode下,不准许创建连接
System altered.

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;  --修改字符集到ZHS16GBK
ALTER DATABASE CHARACTER SET ZHS16GBK 
*  
ERROR at line 1: 
ORA-12712: new character set must be a superset of old character set--提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改;


SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
ALTER DATABASE character set INTERNAL_USE ZHS16GBK
*
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active --当前有连接处于active状态,kill掉session或者重启数据库


SQL> shutdown immediate; --关闭实例
SQL> startup mount; --启动实例


SQL> alter system enable restricted session;
System altered.

SQL> alter database open; --打开数据库
Database altered.

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;  --设置字符集
Database altered.

SQL> alter system disable restricted session; --关闭restricted mode
System altered.

SQL>  
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
----------------------------------------------------

注:如果不小心忘记改字符集就导入数据了,那么要先删除表和数据,再去更改字符集,不然数据中文会乱码,可以使用drop user user_name cascade;删除对应的用户,同时删除用户下的数据,不加cascade仅仅删除用户哦;

导入数据

可以执行sql文件导入,当然也可以导入dmp文件导入,自由选择;
查看数据库导入导出dmp文件路径:select * from dba_directories
在这里插入图片描述

总结

经过以上的步骤,就实现了数据库实例的静默安装了,当然有可能有些细节问题没有兼顾到,也可能有不对的地方,烦请指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值