Rhel7 Oracle11gr2 单实例安装
操作系统配置
hostnamectl set-hostname fkdb
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
sed -i /SELINUX=/"s/enforcing/disabled/g" /etc/selinux/config
echo "" >>/etc/rc.d/rc.local
echo "" >>/etc/rc.d/rc.local
echo "mount -t iso9660 -o loop /soft/CentOS-7.4-x86_64-Everything-1708.iso /media" >>/etc/rc.d/rc.local
mount -t iso9660 -o loop /soft/CentOS-7.4-x86_64-Everything-1708.iso /media
chmod +x /etc/rc.d/rc.local
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
touch /etc/yum.repos.d/yum7.repo
echo "[base]" >> /etc/yum.repos.d/yum7.repo
echo "name=rhel7" >> /etc/yum.repos.d/yum7.repo
echo "baseurl=file:///media" >> /etc/yum.repos.d/yum7.repo
echo "enable=1" >> /etc/yum.repos.d/yum7.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/yum7.repo
yum clean all
yum makecache
yum -y install binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat openssh-clients compat-libcap1 xorg-x11-utils xorg-x11-xauth elfutils unixODBC unixODBC-devel libXp elfutils-libelf elfutils-libelf-devel smartmontools xorg-x11-utils xorg-x11-server-utils unzip lrzsz
echo "Port 10022" >>/etc/ssh/sshd_config
systemctl restart sshd.service
echo "" >>/etc/rc.d/rc.local
echo "" >>/etc/rc.d/rc.local
echo "if test -f /sys/kernel/mm/transparent_hugepage/enabled; then" >>/etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >>/etc/rc.d/rc.local
echo "fi" >>/etc/rc.d/rc.local
echo "if test -f /sys/kernel/mm/transparent_hugepage/defrag; then" >>/etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >>/etc/rc.d/rc.local
echo "fi" >>/etc/rc.d/rc.local
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.shmall = 8388608" >> /etc/sysctl.conf
echo "kernel.shmmax = 17179869184" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048576" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 4194304" >> /etc/sysctl.conf
echo "vm.dirty_ratio=20" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio=3" >> /etc/sysctl.conf
echo "vm.dirty_writeback_centisecs=100" >> /etc/sysctl.conf
echo "vm.dirty_expire_centisecs=500" >> /etc/sysctl.conf
echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "vm.min_free_kbytes=524288" >> /etc/sysctl.conf
sysctl -p
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/useradd -u 54321 -g oinstall -G dba oracle
mkdir -p /u01/app/oracle/product/11.2.0/db_home
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01
touch /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle soft nproc 16384" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle soft nofile 10240" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle soft stack 10240" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle hard stack 32768" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle soft memlock unlimited" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle hard memlock unlimited" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle soft core unlimited" >> /etc/security/limits.d/99-grid-oracle-limits.conf
echo "oracle hard core unlimited" >> /etc/security/limits.d/99-grid-oracle-limits.conf
touch /etc/profile.d/oracle-grid.sh
echo " if [ \$USER = \"oracle\" ]; then" >>/etc/profile.d/oracle-grid.sh
echo " if [ \$SHELL = \"/bin/ksh\" ]; then" >>/etc/profile.d/oracle-grid.sh
echo " ulimit -u 16384" >>/etc/profile.d/oracle-grid.sh
echo " ulimit -n 65536" >>/etc/profile.d/oracle-grid.sh
echo " else" >>/etc/profile.d/oracle-grid.sh
echo " ulimit -u 16384 -n 65536" >>/etc/profile.d/oracle-grid.sh
echo " fi" >>/etc/profile.d/oracle-grid.sh
echo " fi" >>/etc/profile.d/oracle-grid.sh
echo "" >> /home/oracle/.bash_profile
echo "#Oracle Settings" >> /home/oracle/.bash_profile
echo "export TMP=/tmp" >> /home/oracle/.bash_profile
echo "export TMPDIR=\$TMP" >> /home/oracle/.bash_profile
echo "export ORACLE_SID=fkdb;" >> /home/oracle/.bash_profile
echo "export ORACLE_BASE=/u01/app/oracle" >> /home/oracle/.bash_profile
echo "export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db_home" >> /home/oracle/.bash_profile
echo "export ORACLE_TERM=xterm" >> /home/oracle/.bash_profile
echo "export PATH=/usr/sbin:\$PATH" >> /home/oracle/.bash_profile
echo "export PATH=\$ORACLE_HOME/bin:\$PATH" >> /home/oracle/.bash_profile
echo "export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib" >> /home/oracle/.bash_profile
echo "export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib" >> /home/oracle/.bash_profile
echo "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >> /home/oracle/.bash_profile
echo "export NLS_DATE_FORMAT=\"YYYY-MM-DD HH24:MI:SS\"" >> /home/oracle/.bash_profile
echo "export LANG=en_US.UTF-8" >> /home/oracle/.bash_profile
echo "umask 022" >> /home/oracle/.bash_profile
数据库软件安装
export DISPLAY=192.168.0.107:0.0
./runInstaller
提示:Error in invoking target 'agent nmhs'of makefile '/u01/app/oracle/product/11.2.0/db_home/sysman/lib/ins_emagent.mk'.
解决方法如下:
cd $ORACLE_HOME/sysman/lib
cp ins_emagent.mk ins_emagent.mk.bak
vi ins_emagent.mk
/NMECTL 快速定位,修改如下:
$(MK_EMAGENT_NMECTL) -lnnz11
说明:第一个是字母l 后面两个是数字1
然后点击 Retry
监听安装
netca
实例安装
dbca
设置开启自启动
vi /etc/oratab
fkdb:/u01/app/oracle/product/11.2.0/db_home:Y
vi /etc/rc.d/rc.local
su oracle -lc "/u01/app/oracle/product/11.2.0/db_home/bin/lsnrctl start"
su oracle -lc "/u01/app/oracle/product/11.2.0/db_home/bin/dbstart"
Oracle内存管理切换
启用amm:
设置memory_max_target和memory_target值
设置sga_target和pga_aggregate_target分别为0
启用amm需要保证操作系统的/dev/shm >= memory_max_target
修改/dev/shm大小,如下:
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
保存后,mount -o remount /dev/shm
a.查看sga_target和pga_aggregate_target的当前值
show parameter sga_target;
show parameter pga_aggregate_target;
b.查看pga最大可分配大小
select value/1048576 from v$pgastat where name='maximum PGA allocated';
c.memory_target=sga_target+max(pga_aggregate_target,maxium_pga_allcoate)
d.操作
alter system set memory_max_target=3220M scope=spfile;
alter system set memory_target=3220M scope=spfile;
alter system set sga_target=0M scope=spfile;
alter system set pga_aggregate_target=0M scope=spfile;
shutdown immediate;
startup;
由amm变为asmm:
alter system reset memory_max_target;(11G)alter system set memory_max_target=0M scope=spfile;(12C)
alter system set memory_target=0M scope=spfile;
alter system set sga_max_size=3000M scope=spfile;
alter system set sga_target=3000M scope=spfile;
alter system set pga_aggregate_target=148M scope=spfile;
shutdown immediate;
startup;
alter system set shared_pool_size=0M;
alter system set large_pool_size=0M;
alter system set java_pool_size=0M;
alter system set db_cache_size=0M;
alter system set streams_pool_size=0M;
以上参数可设置为0启用完全的asmm,也可以设置为非0,这样作为优化sga的最小值
开启大页内存
Oracle内存管理为ASMM方式,实施步骤如下:
1)检查/proc/meminfo
grep -i hugepage /proc/meminfo
2)计算HugePages_Total大小,使用hugepages_settings.sh脚本进行计算:
#!/bin/bash
KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`
# Find out the HugePage size
HPG_SZ=`grep Hugepagesize /proc/meminfo | awk '{print $2}'`
# Start from 1 pages to be on the safe side and guarantee 1 free HugePage
NUM_PG=1
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | awk '{print $5}' | grep "[0-9][0-9]*"`
do
MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`
if [ $MIN_PG -gt 0 ]; then
NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`
fi
done
# Finish with results
case $KERN in
'2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;
echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;;
'2.6') MEM_LOCK=`echo "$NUM_PG*$HPG_SZ" | bc -q`;
echo "Recommended setting within the kernel boot command line(/etc/sysctl.conf): vm.nr_hugepages = $NUM_PG"
echo "Recommended setting within /etc/security/limits.d/99-grid-oracle-limits.conf: oracle soft memlock $MEM_LOCK"
echo "Recommended setting within /etc/security/limits.d/99-grid-oracle-limits.conf: oracle hard memlock $MEM_LOCK" ;;
'3.10') MEM_LOCK=`echo "$NUM_PG*$HPG_SZ" | bc -q`;
echo "Recommended setting within the kernel boot command line(/etc/sysctl.conf): vm.nr_hugepages =$NUM_PG"
echo "Recommended setting within /etc/security/limits.d/99-grid-oracle-limits.conf: oracle soft memlock $MEM_LOCK"
echo "Recommended setting within /etc/security/limits.d/99-grid-oracle-limits.conf: oracle hard memlock $MEM_LOCK" ;;
*) echo "Unrecognized kernel version $KERN. Exiting." ;;
esac
#end ----
3)修改/etc/sysctl.conf文件,增加如下行,根据上步计算的hugepages大小:
vm.nr_hugepages=9218
4)生效
sysctl -p
5)修改/etc/security/limits.d/99-grid-oracle-limits.conf,增加如下,设定oracle用户可以锁定内存的大小 ,以KB为单位,可以设置为具体值,也可设置为unlimited:
oracle soft memlock unlimited
oracle hard memlock unlimited
6)重新启动实例
修改参数
Alter system set resource_manager_plan='FORCE:' scope =spfile sid='*';
Alter system set audit_trail=none scope=spfile sid='*';
alter system set undo_retention=10800 scope=spfile sid='*';
alter system set session_cached_cursors=200 scope=spfile sid='*';
alter system set db_files=2000 scope=spfile sid='*';
alter system set max_shared_servers=0 scope=spfile sid='*';
alter system set sec_max_failed_login_attempts=100 scope=spfile sid='*';
alter system set deferred_segment_creation=false scope=spfile sid='*';
alter system set parallel_force_local=true scope=spfile sid='*';
alter system set parallel_max_servers=32 scope=spfile sid='*';
alter system set sec_case_sensitive_logon=false scope=spfile sid='*';
alter system set open_cursors=3000 scope=spfile sid='*';
alter system set open_links =40 scope=spfile sid='*';
alter system set open_links_per_instance =40 scope=spfile sid='*';
alter system set db_cache_advice=off scope=spfile sid='*';
alter system set "_b_tree_bitmap_plans"=false scope=spfile sid='*';
alter system set "_gc_policy_time"=0 scope=spfile sid='*';
alter system set "_gc_defer_time"=3 scope=spfile sid='*';
alter system set "_lm_tickets"=5000 scope=spfile sid='*';
alter system set "_optimizer_use_feedback"=false sid='*';
alter system set "_undo_autotune"=false scope=both sid='*';
alter system set "_bloom_filter_enabled"=FALSE scope=spfile sid='*';
alter system set "_cleanup_rollback_entries"=2000 scope=spfile sid='*';
alter system set "_px_use_large_pool"=true scope=spfile sid='*';
alter system set "_optimizer_extended_cursor_sharing_rel"=NONE scope=spfile
sid='*';
alter system set "_optimizer_extended_cursor_sharing"=NONE scope=spfile sid='*';
alter system set "_optimizer_adaptive_cursor_sharing"=false scope=spfile
sid='*';
alter system set "_optimizer_mjc_enabled"=FALSE scope=spfile sid='*';
alter system set "_sort_elimination_cost_ratio"=1 scope=spfile sid='*';
alter system set "_partition_large_extents"=FALSE scope=spfile sid='*';
alter system set "_index_partition_large_extents"=FALSE scope=spfile sid='*';
alter system set "_clusterwide_global_transactions"=FALSE scope=spfile sid='*';
alter system set "_part_access_version_by_number"=FALSE scope=spfile;
alter system set "_partition_large_extents"=FALSE scope=spfile;
alter system set "_sort_elimination_cost_ratio"=1 scope=spfile;
alter system set "_use_adaptive_log_file_sync"=FALSE scope=spfile;
alter system set "_lm_sync_timeout"=1200 scope=spfile;
alter system set "_ksmg_granule_size"=134217728 scope=spfile;
alter system set "_optimizer_cartesian_enabled"=false scope=spfile;
alter system set "_external_scn_logging_threshold_seconds"=3600 scope=spfile;
alter system set "_datafile_write_errors_crash_instance"=false scope=spfile;
alter system set event='28401 TRACE NAME CONTEXT FOREVER, LEVEL 1:60025 trace name
context forever:10949 trace name context forever,level 1' sid='*' scope=spfile;
修改端口
lsnrctl stop
cd $ORACLE_HOME/network/admin
vi listener.ora ---1521改为11521
lsnrctl start
sqlplus / as sysdba
alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 10.158.212.184)(PORT = 11521))' scope=both sid='fkdb';
alter system register;
exit
lsnrctl status
数据导入
mkdir backup
sqlplus / as sysdba
SQL> create directory dump_backup as '/home/oracle/backup';
Directory created.
SQL> grant read,write on directory dump_backup to system;
Grant succeeded.
create tablespace znyj datafile '/u01/app/oracle/oradata/fkdb/znyj_01.dbf' size 5120M autoextend on next 10M;
create tablespace isc02 datafile '/u01/app/oracle/oradata/fkdb/isc02_01.dbf' size 5120M autoextend on next 10M;
----切换至oracle用户:
impdp system/system directory=dump_backup dumpfile=isc.dmp logfile=isc_impdp.log
impdp system/system directory=dump_backup dumpfile=jnznyj-yuanshi.dmp logfile=znyj_impdp.log
挂载存储
----华为ulprath安装
unzip OceanStor_UltraPath_21.5.0_RHEL.zip
./install.sh -f unattend_install.conf
/etc/init.d/nxup start
parted /dev/sdb
mkpart primary 8192s -1
pvcreate /dev/sdb1
vgcreate vg_data /dev/sdb1
lvcreate -L 1000g -n lv_data vg_data
mkfs.xfs /dev/mapper/vg_data-lv_data
mkdir /data
mount /dev/mapper/vg_data-lv_data /data/
vi /etc/fstab
/dev/mapper/vg_data-lv_data /data xfs defaults 0 0
mount -a
修改IP
----root用户
vi /etc/hosts
su - oracle
sqlplus / as sysdba
alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 11521))' scope=both sid='fkdb';
lsnrctl stop
lsnrctl start
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。