安装与备份
参考文档:https://blog.youkuaiyun.com/weixin_39610229/article/details/110905381?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase
准备安装包以及依赖
链接:https://pan.baidu.com/s/1jorpaGS8IXwLwPCdFfWqFA
提取码:63in
安装包:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
依赖:
compat-db-4.1.25.9.x86_64.rpm
glibc-static-2.17-55.el7.x86_64.rpm
libaio-0.3.106-5.i386.rpm
libaio-0.3.106-5.x86_64.rpm
libaio-devel-0.3.106-5.i386.rpm
libaio-devel-0.3.106-5.x86_64.rpm
rlwrap-0.37-1.el5.x86_64.rpm
sysstat-7.0.2-3.el5.x86_64.rpm
unixODBC-2.2.11-7.1.i386.rpm
unixODBC-2.2.11-7.1.x86_64.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.x86_64.rpm
安装依赖
rpm -ivh *.rpm --nodeps --force
yum -y install mksh ksh
创建oracle用户
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
asmdba asmadmin我后边没用到
查看创建用户
# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1004(asmdba)
修改oracle密码
passwd oracle
配置内核参数
sysctl.conf添加以下
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=4194304
kernel.shmmni=4096
kernel.shmmax=17179869184
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=1048586
sysctl -p
(注:可以使用 ipcs -l 看结果。ipcs -u 可以看到实际使用的情况)
参数详解
kernel.shmall的单位是页。
简述:2097152 =8G ,4194304=16G
详述:对于X86的linux系统,一页=4k,也就是4096字节。kernel.shmall = 2097152 就是 2097152*4k/1024/1024 = 8G 就是说可用共享内存一共8G。
一个共享内存段的最大大小是16G,那么需要共享内存页数是 16GB/4KB=16777216KB/4KB=4194304 (页),也就是64Bit 系统下
16GB 物理内存,设置 kernel.shmall = 4194304 才符合要求(几乎是原来设置2097152
的两倍)。这时可以将shmmax 参数调整到 16G 了,同时可以修改SGA_MAX_SIZE 和
SGA_TARGET 为 12G(您想设置的SGA 最大大小,当然也可以是2G~14G 等,还要协调PGA
参数及OS 等其他内存使用,不能设置太满,比如16G)。kernel.shmmni:
共享内存段的最大数量,shmmni 缺省值 4096 ,一般肯定是够用了
kernel.shmmax:
Shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值(以字节为单位),
设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降,最大值为16GB(在大多数情况下,该值应该比SGA大)。
其值应>=sag_max_size初始化参数的大小,否则SAG由多个内存段构成,效率降低,
还要不小于物理内存的一半,默认情况下在32位x86系统中,Oracle SGA最大不能超过1.7GB.
缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G(2147483648)
针对24G的服务器,至少12G的配置,则是17179869184其他参数简单说明:
kernel.sem // 表示设置的信号量
fs.file-max // 表示一个进程可以打开的文件句柄的最大数量.
net.ipv4.ip_local_port_range //专用服务器模式下与用户进程通信时分配给用户的端口区间
net.core.rmem_default // 默认接收缓冲区大小
net.core.rmem_max // 接收缓冲区最大值
net.core.wmem_default // 默认的发送缓冲区大小
net.core.wmem_max // 发送缓冲区最大值
限制oracle用户的shell权限
vim /etc/security/limits.conf
#在末尾添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
参数详解
limits.conf 配置说明:
domain:
username|@groupname:设置需要被限制的用户名,组名前面加@ 与 用户名 区别。 * 表示所有用户(注意有的系统不支持哦)。
type:
soft 指的是当前系统生效的设置值,
hard 表明系统中所能设定的最大值(soft 的限制不能比har 限制高 )
就表明同时设置了 soft 和 hard 的值。
resource(针对Oracle的我们主要配置nproc nofile):
as-地址空间限制
rss-最大持久设置大小
cpu-以分钟为单位的最多 CPU 时间
core-限制内核文件的大小
date-最大数据大小
stack-最大栈大小
fsize-最大文件大小
noproc-进程的最大数目
nofile-打开文件的最大数目
memlock-最大锁定内存地址空间
maxlogins-此用户允许登录的最大数目
value: 限制的值
修改profile文件
修改/etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
修改/etc/profile
添加以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
生效
source /etc/profile
创建oracle安装目录
mkdir -p /db/app/oracle/product/11.2.0
mkdir /db/app/oracle/oradata
mkdir /db/app/oraInventory (这个目录和oracle目录是一级)
mkdir /db/app/oracle/fast_recovery_area
chown -R oracle:oinstall /db/app/oracle
chmod -R 775 /db/app/oracle
创建 vi /etc/oraInst.loc
(本人并没用到)
inventory_loc=/db/app/oraInventory
inst_group=oinstall
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
配置oracle用户环境变量
su - oracle
export ORACLE_BASE=/db/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
export LC_ALL=C
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
生效
source /home/oracle/.bash_profile
解压oracle.zip包
su - root
unzip linux.x64_11gR2_database_1of2.zip -d /db
unzip linux.x64_11gR2_database_2of2.zip -d /db
复制到oracle用户并授权
su - root
mkdir /home/oracle/etc/
cd /db/
cp database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp
chown -R oracle.oinstall /home/oracle/
修改静默安装的配置文件
su - oracle
cd /home/oracle/etc/
cp db_install.rsp db_install.rspbak #备份原文件
修改文件
vim db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
#安装类型
oracle.install.option=INSTALL_DB_SWONLY
#主机名
ORACLE_HOSTNAME=localhost
#安装组
UNIX_GROUP_NAME=oinstall
#INVENTORY目录(不填就是默认值)
INVENTORY_LOCATION=/db/app/oraInventory
#选择语言
SELECTED_LANGUAGES=zh_CN,en
#oracle_home
ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
#oracle_base
ORACLE_BASE=/db/app/oracle
#oracle版本
oracle.install.db.InstallEdition=EE
#自定义安装,否,使用默认组件
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
#dba用户组
oracle.install.db.DBA_GROUP=dba
#oper用户组
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
#数据库类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#globalDBName全局数据库名字
oracle.install.db.config.starterdb.globalDBName=orcl
#SID
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
#oracle自动管理的内存大小(M) 我填我本机最大内存
oracle.install.db.config.starterdb.memoryLimit=1892
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
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=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
#不写安装时会报错
oracle.install.db.config.asm.ASMSNMPPassword=oracle
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
#(手动写了false)
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
#设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
开始安装
cd /db/database/
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
日志中出现如下信息表示成功
tail -f 日志
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
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.
安装完成之后执行生成脚本
su - root
cd /db/app/oracle/product/11.2.0/db_1/
/db/app/oraInventory/orainstRoot.sh
/db/app/oracle/product/11.2.0/db_1/root.sh
修改建库应答文件参数
su - oracle
cd /home/oracle/etc/
cp dbca.rsp dbca.rsp-bak
修改一下参数
vim /home/oracle/etc/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
DATAFILEDESTINATION=/db/app/oracle/oradata
RECOVERYAREADESTINATION=/db/app/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
TOTALMEMORY= "1638"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"
建库
dbca -silent -responseFile /home/oracle/etc/dbca.rsp
生成信息
sh: /bin/ksh: No such file or directory
sh: /bin/ksh: No such file or directory
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
57% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
74% complete
85% complete
96% complete
100% complete
Look at the log file "/data/oracle/cfgtoollogs/dbca/ora11g/ora11g.log" for further details
创建、启动监听
su - oracle
cd /u01/app/oracle/product/11.2.0/db_1/network/admin/
vim listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = orcl)
)
)
启动监听
lsnrctl start
查看监听状态
lsnrctl status
启动数据库
[oracle@oracledb ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 16 14:26:57 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> start
SP2-1506: START, @ or @@ command has no arguments
SQL> startup
ORACLE instance started.
Total System Global Area 3290345472 bytes
Fixed Size 2217832 bytes
Variable Size 1795164312 bytes
Database Buffers 1476395008 bytes
Redo Buffers 16568320 bytes
Database mounted.
Database opened.
SQL>
出现这两个,代表安装成功
使用show parameter;或者select table_name from dba_tables看看是否正常
启动监听
启动监听:lsnrctl start
查看监听:lsnrctl status
停止监听:lsnrctl stop
开机启动
#vim /etc/rc.local
su - oracle << EOF
export ORACLE_SID=dbsrv
lsnrctl start
sqlplus / as sysdba
startup
quit
EOF
备份
su - oracle
sql 进入
#创建本地备份目录(只需要设置一次)
sql>create directory exp_dir as '/home/oracle/backup_dump/'
expdp_bak_dir
#授于system权限
grant create any directory to system;
~]$ expdp system/oradba dumpfile=blackbox_${date}.dmp schemas=blackbox directory=exp_di
用户名/密码 导出的文件名 表空间名 导出的目录
或expdp system/oradba dumpfile=blackbox_${date}.dmp tablespace=blackbox directory=exp_di log=blackbox.log
expdp system/oradba@orcl dumpfile=bakfile.dmp directory=expdp_bak_dir full=y
导入
远程数据库用户blackbox授予导入权限
GRANT imp_FULL_DATABASE TO blackbox;
本地执行导入命令
impdp backup schemas=backup remap_schema=backup:blackbox DIRECTORY=exp_dir DUMPFILE=blackbox_${date}.dmp
https://www.imzcy.cn/300.html 基本操作
https://www.linuxprobe.com/oracle.html
http://www.ttlsa.com/oracle/linux-auto-backup-oracle-database/ 备份脚本
https://blog.51cto.com/14074978/2362601?source=dra 查看jobs
https://blog.youkuaiyun.com/weixin_30425949/article/details/98602410 根据表空间备份脚本
数据库备份 https://blog.youkuaiyun.com/qq_42254198/article/details/84590977?utm_medium=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v29-3.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task--2~all~first_rank_v2~rank_v29-3.nonecase