环境说明
- 系统:CentOS 7、4核8G
- 软件包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip 上传至服务器。
- 下载地址:https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.htm
系统安装准备
1、更新系统yum源和安装Oracle依赖包:
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak [root@localhost ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo [root@localhost ~]# yum clean all [root@localhost ~]# yum makecache # 安装依赖包 yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel
2、更改主机名
[root@localhost ~]# hostnamectl set-hostname oracle-db [root@localhost ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 oracle-db ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 oracle-db
3、创建oracle数据库安装目录并解压数据包
创建oracle数据库安装目录:
[root@oracle-db ~]# mkdir -p /data/ora [root@oracle-db ~]# mkdir /data/ora/inventory [root@oracle-db ~]# mkdir /data/ora/oracle
解压oracle数据库软件包:
[root@oracle-db ~]# unzip linux.x64_11gR2_database_1of2.zip -d /data [root@oracle-db ~]# unzip linux.x64_11gR2_database_2of2.zip -d /data [root@oracle-db ~]# chown -R oracle:oinstall /data/ora
4、修改os系统标识
[root@oracle-db ~]# vim /etc/redhat-release CentOS Linux release 7.6.1810 (Core) redhat-7
5、关闭防火墙和SELinux
[root@oracle-db ~]# systemctl disable firewalld.service [root@oracle-db ~]# systemctl stop firewalld.service
[root@oracle-db ~]# sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
6、修改内核参数
编辑/etc/sysctl.conf
文件,追加:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
执行命令/sbin/sysctl -p
生效。
7、对oracle用户设置限制,提高软件运行性能
编辑/etc/security/limits.conf
,追加:
#use for oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
8、修改系统登陆配置文件
echo 'session required /lib64/security/pam_limits.so' >> /etc/pam.d/login
echo 'session required pam_limits.so' >> /etc/pam.d/login
编辑/etc/csh.login
,追加:
if ( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
编辑/etc/profile
,追加:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
执行source /etc/profile
生效。
9、配置oracle用户环境变量
编辑/home/oracle/.bash_profile
,追加:
export ORACLE_BASE=/data/ora/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=SKDB # 和 dbca.rsp 配置文件里要一致
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$PATH
执行source /home/oracle/.bash_profile
生效。
以上操作完毕后,重启系统:init 6
安装Oracle
切换到Oracle用户su - oracle
,编辑/data/ora/database/response/db_install.rsp
文件:
# 标注响应文件版本,这个版本必须和要安装的数据库版本相同,安装检验无法通过,不能更改
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
# 选择安装类型
# 1. INSTALL_DB_SWONLY 只装数据库软件
# 2. INSTALL_DB_AND_CONFIG 安装数据库软件并建库
# 3. UPGRADE_DB 升级数据库
oracle.install.option=INSTALL_DB_SWONLY
# 指定操作系统主机名,通过 hostname 命令获得
ORACLE_HOSTNAME=oracle-db
# 指定oracle inventory目录的所有者,通常会是 oinstall 或者 dba
UNIX_GROUP_NAME=oinstall
# 指定产品清单 oracle inventory 目录的路径
INVENTORY_LOCATION=/data/ora/oracle/inventory
# 指定数据库语言,可以选择多个 , 用逗号隔开。选择en, zh_CN(英文和简体中文)
SELECTED_LANGUAGES=en,zh_CN
# 设置 ORALCE_HOME 的路径
ORACLE_HOME=/data/ora/oracle/product/11.2.0
# 设置 ORALCE_BASE 的路径
ORACLE_BASE=/data/ora/oracle
# 选择Oracle安装数据库软件的版本(企业版,标准版,标准版1),不同的版本功能不同
oracle.install.db.InstallEdition=EE
# 是否自定义Oracle的组件,如果选择false,则会使用默认的组件,如果选择true否则需要自己在下面一条参数将要安装的组件一一列出。
# 安装相应版权后会安装所有的组件,后期如果缺乏某个组件,再次安装会非常的麻烦。
oracle.install.db.isCustomInstall=true
# 手工选择需要安装组件
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
# 指定拥有 OSDBA、OSOPER 权限的用户组,通常会是 dba 组
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
# 如果是RAC的安装,在这里指定所有的节点
oracle.install.db.CLUSTER_NODES=
# 选择数据库的用途,一般用途/事物处理,数据仓库
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
# 指定GlobalName
oracle.install.db.config.starterdb.globalDBName=orcl
# 指定SID,和 ORACLE_SID 一致
oracle.install.db.config.starterdb.SID=SKDB
# 选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。
# 通常中文选择的有 ZHS16GBK 简体中文库,建议选择 unicode 的 AL32UTF8 国际字符集
oracle.install.db.config.starterdb.characterSet=AL32UTF8
# 11g的新特性自动内存管理,也就是 SGA_TARGET 和 PAG_AGGREGATE_TARGET 都不用设置了,Oracle会自动调配两部分大小。
oracle.install.db.config.starterdb.memoryOption=true
# 指定Oracle自动管理内存的大小,最小是256MB
oracle.install.db.config.starterdb.memoryLimit=1024
# 是否载入模板示例
oracle.install.db.config.starterdb.installExampleSchemas=false
# 是否启用安全设置
oracle.install.db.config.starterdb.enableSecuritySettings=true
# 设置数据库用户密码,设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
# 数据库本地管理工具 DB_CONTROL,远程集中管理工具 GRID_CONTROL
oracle.install.db.config.starterdb.control=DB_CONTROL
# GRID_CONTROL 需要设定 grid control 的远程路径 URL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
# 是否启用Email通知, 启用后会将告警等信息发送到指定邮箱
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
# 设置通知EMAIL地址
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
# 设置EMAIL邮件服务器
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
# 设置自动备份,和OUI里的自动备份一样
oracle.install.db.config.starterdb.automatedBackup.enable=false
# 自动备份会启动一个job,指定启动JOB的系统用户ID
oracle.install.db.config.starterdb.automatedBackup.osuid=
# 自动备份会开启一个job,需要指定OSUser的密码
oracle.install.db.config.starterdb.automatedBackup.ospwd=
# 自动备份,要求指定使用的文件系统存放数据库文件还是ASM
oracle.install.db.config.starterdb.storageType=
# 使用文件系统存放数据库文件才需要指定数据文件、控制文件、Redo log的存放目录
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
# 使用文件系统存放数据库文件才需要指定备份恢复目录
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
# 使用ASM存放数据库文件才需要指定存放的磁盘组
oracle.install.db.config.asm.diskGroup=
# 使用ASM存放数据库文件才需要指定ASM实例密码
oracle.install.db.config.asm.ASMSNMPPassword=
# 指定metalink账户用户名
MYORACLESUPPORT_USERNAME=
# 指定metalink账户密码
MYORACLESUPPORT_PASSWORD=
# 用户是否可以设置metalink密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
# 表示不需要设置安全更新,Response File中必须指定为true,否则会提示错误
DECLINE_SECURITY_UPDATES=true
# 代理服务器名
PROXY_HOST=
# 代理服务器端口
PROXY_PORT=
# 代理服务器用户名
PROXY_USER=
# 代理服务器密码
PROXY_PWD=
执行安装:
[oracle@oracle-db ~]$ /data/ora/database/runInstaller -silent -ignorePrereq -responseFile /data/ora/database/response/db_install.rsp
查看安装过程:
[oracle@oracle-db ~]$ tailf /data/ora/oracle/inventory/logs/installActions2019-04-26_02-51-59AM.log
To execute the configuration scripts: 1. Open a terminal window 2. Log in as "root" 3. Run the scripts 4. Return to this window and hit "Enter" key to continue Successfully Setup Software.
提示以上信息表示安装完成!
切换到 root 用户,执行:
[root@oracle-db ~]# /data/ora/oracle/inventory/orainstRoot.sh # 这个文件不一定会存在,目前不知原因 [root@oracle-db ~]# /data/ora/oracle/product/11.2.0/root.sh
安装网络监听器
切换到 Oracle 用户后操作:
[root@oracle-db ~]# su - oracle [oracle@oracle-db ~]$ /data/ora/oracle/product/11.2.0/bin/netca /silent /responsefile /data/ora/database/response/netca.rsp
Parsing command line arguments: Parameter "silent" = true Parameter "responsefile" = /data/ora/database/response/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Oracle Net Listener Startup: Running Listener Control: /data/ora/oracle/product/11.2.0/bin/lsnrctl start LISTENER Listener Control complete. Listener started successfully. Listener configuration complete. Oracle Net Services configuration successful. The exit code is 0
启动监听器查看状态:
[oracle@oracle-db ~]$ lsnrctl start [oracle@oracle-db ~]$ lsnrctl status
以静默方式建立新库
[oracle@oracle-db ~]$ cat /data/ora/database/response/dbca.rsp | grep -v "^#" | grep -v "^$"
[GENERAL]
# 数据库版本,不可更改
RESPONSEFILE_VERSION = "11.2.0"
# 操作类型:创建数据库
# 可选还有创建模版从数据库,创建克隆模版,删除数据库,配置数据库,添加实例(只限RAC),删除实例(只限RAC)
OPERATION_TYPE = "createDatabase"
# 当操作类型选择 createDatabase 会使用下面的选项
[CREATEDATABASE]
# 数据库的全局数据库名称
GDBNAME = "orcl"
# 数据库的系统标识符
SID = "SKDB"
# 模板文件的名字
TEMPLATENAME = "General_Purpose.dbc"
# 系统超级用户密码
SYSPASSWORD = "password123"
SYSTEMPASSWORD = "password123"
# 数据库的字符集
CHARACTERSET = "AL32UTF8"
# 国家字符集
NATIONALCHARACTERSET= "UTF8"
# Oracle占用物理内存的百分比
MEMORYPERCENTAGE = "40"
# 当操作类型是创建模版createTemplateFromDB的时候会启用这个选项
[createTemplateFromDB]
# 给源数据库创建模版
SOURCEDB = "myhost:1521:orcl"
# 使用的数据库角色是system
SYSDBAUSERNAME = "system"
# 新模版的名字
TEMPLATENAME = "My Copy TEMPLATE"
# 当操作类型是创建克隆模版createCloneTemplate会使用下面的选项
[createCloneTemplate]
# 源数据库的SID
SOURCEDB = "orcl"
# 新模版的名字
TEMPLATENAME = "My Clone TEMPLATE"
# 当操作类型是删除数据库DELETEDATABASE会启动下面的选项
[DELETEDATABASE]
# 源数据库的SID
SOURCEDB = "orcl"
# 生成脚本的选项
[generateScripts]
# 模版的名字
TEMPLATENAME = "New Database"
# 全局数据库的名字
GDBNAME = "orcl11.us.oracle.com"
# 当操作类型是配置数据库CONFIGUREDATABASE会启用下面的选项
[CONFIGUREDATABASE]
EMCONFIGURATION = "LOCAL"
SYSMANPASSWORD = "password123"
DBSNMPPASSWORD = "password123"
# 当操作类型选择的是添加实例ADDINSTANCE会启动下面的选项
[ADDINSTANCE]
# RAC数据库的唯一的名称
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
# 添加新实例的节点
NODELIST=
# 使用的角色是sys
SYSDBAUSERNAME = "sys"
# 当选择的操作类型是删除实例DELETEINSTANCE会启动下面选项
[DELETEINSTANCE]
# RAC数据库的唯一名字
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
# 要删除的RAC实例名
INSTANCENAME = "orcl11g"
# 使用的数据库角色
SYSDBAUSERNAME = "sys"
执行安装:
[oracle@oracle-db ~]$ /data/ora/oracle/product/11.2.0/bin/dbca -silent -responseFile /data/ora/database/response/dbca.rsp
sh: /bin/ksh: No such file or directory sh: /bin/ksh: No such file or directory Cleaning up failed steps 5% complete Copying database files 7% complete 9% complete 16% complete 23% complete 30% complete 41% complete Creating and starting Oracle instance 43% complete 48% complete 53% complete 58% complete 59% complete 62% complete 64% complete Completing Database Creation 68% complete 71% complete 75% complete 85% complete 96% complete 100% complete Look at the log file "/data/ora/oracle/cfgtoollogs/dbca/orcl/orcl3.log" for further details.
至此完成数据库实例的创建。
删除实例命令:
[oracle@oracle-db ~]$ /data/ora/oracle/product/11.2.0/bin/dbca -silent -deleteDatabase -sourcedb SKDB
修改 dbstart 文件:
sed -i 's/^ORACLE_HOME_LISTNER=.*$/ORACLE_HOME_LISTNER=$ORACLE_HOME/g' $ORACLE_HOME/bin/dbstart
编辑/etc/oratab
文件,修改如下:
SKDB:/data/ora/oracle/product/11.2.0:Y
启动数据库:
[oracle@oracle-db ~]$ $ORACLE_HOME/bin/dbstart Processing Database instance "SKDB": log file /data/ora/oracle/product/11.2.0/startup.log
[oracle@oracle-db ~]$ ps -ef | grep oracle oracle 23199 1 0 03:08 ? 00:00:00 /data/ora/oracle/product/11.2.0/bin/tnslsnr LISTENER -inherit root 24569 19670 0 03:59 pts/0 00:00:00 su - oracle oracle 24570 24569 0 03:59 pts/0 00:00:00 -bash oracle 25557 1 0 04:14 ? 00:00:00 ora_pmon_SKDB oracle 25559 1 0 04:14 ? 00:00:00 ora_vktm_SKDB oracle 25563 1 0 04:14 ? 00:00:00 ora_gen0_SKDB oracle 25565 1 0 04:14 ? 00:00:00 ora_diag_SKDB oracle 25567 1 0 04:14 ? 00:00:00 ora_dbrm_SKDB oracle 25569 1 0 04:14 ? 00:00:00 ora_psp0_SKDB oracle 25571 1 0 04:14 ? 00:00:00 ora_dia0_SKDB oracle 25573 1 6 04:14 ? 00:00:00 ora_mman_SKDB oracle 25575 1 0 04:14 ? 00:00:00 ora_dbw0_SKDB oracle 25577 1 0 04:14 ? 00:00:00 ora_lgwr_SKDB oracle 25579 1 0 04:14 ? 00:00:00 ora_ckpt_SKDB oracle 25581 1 0 04:14 ? 00:00:00 ora_smon_SKDB oracle 25583 1 0 04:14 ? 00:00:00 ora_reco_SKDB oracle 25585 1 2 04:14 ? 00:00:00 ora_mmon_SKDB oracle 25587 1 0 04:14 ? 00:00:00 ora_mmnl_SKDB oracle 25589 1 0 04:14 ? 00:00:00 ora_d000_SKDB oracle 25591 1 0 04:14 ? 00:00:00 ora_s000_SKDB oracle 25678 1 0 04:14 ? 00:00:00 ora_p000_SKDB oracle 25680 1 0 04:14 ? 00:00:00 ora_p001_SKDB oracle 25682 1 0 04:14 ? 00:00:00 ora_p002_SKDB oracle 25686 1 0 04:14 ? 00:00:00 ora_qmnc_SKDB oracle 25764 1 1 04:14 ? 00:00:00 ora_cjq0_SKDB oracle 25767 24570 0 04:14 pts/0 00:00:00 ps -ef oracle 25768 24570 0 04:14 pts/0 00:00:00 grep --color=auto oracle
设置开机启动:
使用root用户权限在/etc/rc.d/rc.local
文件中添加如下内容:
su - oracle -c "/data/ora/oracle/product/11.2.0/bin/lsnrctl start" su - oracle -c "/data/ora/oracle/product/11.2.0/bin/dbstart start"
登录数据库:
[oracle@oracle-db ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sat Apr 27 22:07:54 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options
新建用户:
[oracle@oracle-db ~]$ sqlplus / as sysdba SQL> create user sk identified by pass123; SQL> alter user sk account unlock; SQL> grant create session to sk; SQL> GRANT CREATE USER, DROP USER, ALTER USER, CREATE ANY VIEW, DROP ANY VIEW, EXP_FULL_DATABASE, IMP_FULL_DATABASE, DBA, CONNECT, RESOURCE, CREATE SESSION TO sk; --修改用户密码: SQL> alter user sk identified by pass123; SQL> alter user SYS identified by "mVM4zFJQHTl"; SQL> alter user SYSTEM identified by "mVM4zFJQHTl"; SQL> alter user SYSMAN identified by "mVM4zFJQHTl"; SQL> alter user DBSNMP identified by "mVM4zFJQHTl";
修改连接数
查看processes和sessions参数:
SQL> show parameter processes; NAME TYPE VALUE ------------------------- -------- ------------- aq_tm_processes integer 0 db_writer_processes integer 1 gcs_server_processes integer 0 global_txn_processes integer 1 job_queue_processes integer 1000 log_archive_max_processes integer 4 processes integer 150
SQL> select count(*) from v$process; --当前的连接数 SQL> select count(*) from v$session; --当前的连接数 SQL> select value from v$parameter where name = 'processes' --数据库允许的最大连接数 SQL> alter system set processes=2500 scope = spfile; SQL> alter system set sessions=2755 scope=spfile;
修改游标
SQL> show parameter open_cursors SQL> alter system set open_cursors=2000 scope=both; --数值修改为2000
创建备份目录
SQL> select * from dba_directories; SQL> create or replace directory DIR_DP as '/backup/';
修改内存分配
SQL> show parameter sga; --显示内存分配情况 SQL> alter system set sga_max_size=12288m scope=spfile; --修改占用内存的大小,建议物理内存一半 SQL> alter system set sga_target=12288m scope=spfile; --修改占用内存的大小,建议物理内存一半
SQL> show parameter pga; --显示内存分配情况 SQL> alter system set pga_aggregate_target=8192m scope=spfile; --修改内存分配
查看表空间情况,USERS 低于30%就要增加数据文件:
SQL> SELECT tablespace_name, sum_m, round(max_m,0) sum_m, count_blocks free_blk_cnt,round(sum_free_m,0) sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS pct_free FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name) , ( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks, sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name order by tablespace_name;
--查看数据文件 SQL> select * from dba_data_files order by tablespace_name,file_name; --增加数据文件 SQL> alter tablespace USERS add datafile '/data/ora/oracle/oradata/orcl/users01.dbf' size 16G; SQL> alter tablespace USERS add datafile '/data/ora/oracle/oradata/orcl/users02.dbf' size 16G;
THE END
暂无评论内容