Loading... # 准备环境 ## 材料的准备 Oracle 11g安装包: 百度云链接:https://pan.baidu.com/s/1eVnOtliqTCw0cyrIg7T8sA <div class="tip inlineBlock info"> 关注公众号 “akim同学” 回复 “Oracle_11g安装包” 即可获得网盘分享密码 </div> ## 系统的准备 ### 基本设置 # 关闭selinux setenforce 0 sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config # 关闭防火墙,禁止开机启动 systemctl disable firewalld.service systemctl stop firewalld.service ### 安装图形化界面 # 安装X Window System和GNOME Desktop yum groupinstall -y “X Window System” "GNOME Desktop" # 启用图形化界面 startx > `systemctl get-default`,该命令查看当前是那种模式. > `systemctl set-default graphical.target`,开机启动图形界面. > `systemctl set-default multi-user.target`,开机启动字符界面模式. > `reboot`,重启系统之后才会生效哟~ ### 工具、补丁、依赖安装 yum -y install elfutils-devel unixODBC* unixODBC.i686 unixODBC-devel.i686 binutils.x86_64 compat-libcap1.x86_64 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 vim epel-release lrzsz unzip xorg* yum -y update ### swap分区 swap分区有两种方式,一种是新建磁盘分区作为swap分区,另一种是用文件作为Swap分区。这里使用的是后者,想用前者的可以参考[-->这个链接<--][1]。 SWAP空间大小建议值: | - | - | 物理内存大小(RAM) | SWAP空间大小 | | 2GB~8GB | 2倍于RAM | | 8GB~32GB | 1.5倍于RAM | | 32GB以上 | 32GB | # 创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小) dd if=/dev/zero of=/root/swapfile bs=1M count=8192 # 格式化为交换分区文件,建立swap的文件系统 mkswap /root/swapfile # 启用交换分区文件 swapon /root/swapfile # 使系统开机时自启用,在文件/etc/fstab中添加一行 /root/swapfile swap swap defaults 0 0 # 查看Swap分区大小 grep SwapTotal /proc/meminfo ### 修改系统内核参数 vim /etc/sysctl.conf fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 1048576 kernel.shmmax = 4294967295 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 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304 > **内核参数的详解:** > kernel.shmmax > 查看linux服务器的位数:`getconf LONG_BIT` > 32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。若物理内存大于4GB,也取4GB-1byte。 > 64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12x1024x1024x1024-1=12884901887,SGA肯定会包含在单个共享内存段中,而我这里是4G,所以是4x1024x1024x1024-1=4294967295。 > kernel.shmall > 查看系统默认的值:`getconf PAGESIZE` > 默认是4096(字节4K一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB÷4KB=16777216KB÷4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求。 > 运行命令进行参数修改 > `/sbin/sysctl -p` > 检查参数是否生效 > `/sbin/sysctl -a | grep sem` > `/sbin/sysctl -a | grep shm` > `/sbin/sysctl -a | grep file-max` > `/sbin/sysctl -a | grep aio-max-nr` > `/sbin/sysctl -a | grep net.ipv4.ip_local` > `/sbin/sysctl -a | grep rmem` > `/sbin/sysctl -a | grep wmem` ## 设置oracle用户的shell限制 vim /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 vim /etc/pam.d/login session required pam_limits.so vim /etc/pam.d/su session required pam_limits.so vim /etc/profile if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi ## 创建用户和组 创建dba组 /usr/sbin/groupadd -g 200 dba 创建oinstall组 /usr/sbin/groupadd -g 201 oinstall 创建oracle用户 /usr/sbin/useradd -u 300 -g oinstall -G dba -d /home/oracle -s /bin/bash -m oracle 修改oracle用户密码 passwd oracle ## 创建安装目录并授权 创建目录`/opt/oracle`,并赋权 mkdir /opt/oracle chown -R oracle:oinstall /opt/oracle chmod -R 775 /opt/oracle 创建目录`/opt/oraadm`,并赋权 mkdir /opt/oraadm chown -R oracle:dba /opt/oraadm chmod -R 770 /opt/oraadm 创建目录`/usr/local/bin`,并赋权(检查/usr/local/bin目录是否存在,如不存在则需创建该目录,并赋予755权限) mkdir /usr/local/bin chmod 755 /usr/local/bin ll /usr/local |grep bin 赋权/tmp目录权限(检查/tmp是否具有1777权限,如不具备则赋予/tmp目录1777权限) chmod 1777 /tmp ll / |grep tmp ## 设置oracle用户环境变量 > **ORACLE_BASE,ORACLE_HOME,ORACLE_SID,NLS_LANG**请根据实际情况进行设置。 > **ORACLE_SID**唯一的标识一个实例,一般以数据库名加上实例号为命名规范,例如:有两个实例,数据库名称为suseora,实例1命名为suseora1,实例2命名为suseora2,依次类推,这里_数据库实例设置为orcl_。 > **NLS_LANG**格式为区域_语言.字符集,字符集必须和数据库保持一致。 # 切换到oralce用户 su oralce # 编辑用户环境变量 vim .bash_profile export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/product/11gR2/db export ORACLE_SID=orcl export ORACLE_TERM=xterm LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib export LD_LIBRARY_PATH SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib export SHLIB_PATH # Set shell search paths: export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin # CLASSPATH must include the following JRE locations: CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 执行变量环境生效命令 source .bash_profile # 执行命令,确认环境变量 env ## 拷贝Oralce安装程序,并解压 远程拷贝 scp root@192.168.31.4:/data/Softwares/linux-oracle-11g/linux.x64_11gR2_database_1of2.zip /opt/oraadm/ scp root@192.168.31.4:/data/Softwares/linux-oracle-11g/linux.x64_11gR2_database_2of2.zip /opt/oraadm/ 解压 cd /opt/oraadm unzip /opt/oraadm/linux.x64_11gR2_database_1of2.zip unzip /opt/oraadm/linux.x64_11gR2_database_2of2.zip ## 创建安装目录 chmod 770 -R /opt/oraadm/database chown oracle:dba -R /opt/oraadm/database mkdir /opt/oraadm/grid chmod 770 -R /opt/oraadm/grid chown oracle:dba -R /opt/oraadm/grid mkdir /opt/oraInventory chown oracle:oinstall /opt/oraInventory chmod 770 /opt/oraInventory ## 搭建Xstart环境 yum install xorg-x11-xauth.x86_64 yum install xterm yum install xclock # 配置DISPLAY变量 vim /etc/profile export DISPLAY=:0.0 # 安装Oracle数据库 使用oracle用户登录图形化界面,执行`/opt/oraadm/database/runInstaller`启动安装程序 ![图形化启动截图][2] 取消配置安全更新 ![第一步骤截图][3] 选择安装方式,选择“Install database software only”,单击“NEXT”。 ![第二步骤截图][4] 指定安装类型,选择“Single instance database installation” ![第三步骤截图][5] 选择安装语言,这里我只选择了英文,如果想选中文的话可以在左侧栏寻找后添加 ![第四步骤截图][6] 选择软件版本,选择“Enterprise Edition”,单击“Next”。 ![第五步骤截图][7] 指定安装目录 **Oracle Base**中填写“/opt/oracle”,即oracle用户的环境变量ORACLEBASE。 **SoftwareLocation**中填写“/opt/oracle/product/11gR2/db”,即oracle用户的环境变量ORACLE_BASE。 ![第六步骤截图][8] 这里默认即可,安装时的路径和组设置 ![第七步骤截图][9] 设置操作系统用户组,Database Administrator Group 选择“dba”,Database Operator Group 选择“dba”,单击“Next”。 ![第八步骤截图][10] 安装概要检查结果:对于shmall问题:点击fix and check again,打开新的终端按照步骤进行,然后点击OK,继续检查。 ![第九步骤截图][11] 安装概要检查,检查没有问题,单击“Install”按钮进行安装。由于系统中已经存在更新的软件包,而对于semmni,在内核设置处已经设置,所以以下错误可以忽略。 ![第九步骤截图][12] 确认没有问题之后可以点击“Finish”进行正式安装 ![第十步骤截图][13] 安装中。。。。 ![第十一步骤截图][14] 安装完成 ![第十二步骤截图][18] ## 安装过程中会出现如下报错 ![报错一][15] **解决方案:** 切换回oracle用户,修改`/opt/oracle/product/11gR2/db/ctx/lib/ins_ctx.mk`文件中的配置 ctxhx: $(CTXHXOBJ) $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) 修改为 ctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a ![报错二][16] **解决方案:** 需要修改,`/opt/oracle/product/11gR2/db/sysman/lib/ins_emagent.mk`文件中的配置,将文件中的 $(SYSMANBIN)emdctl: $(MK_EMAGENT_NMECTL) 修改为 $(SYSMANBIN)emdctl: $(MK_EMAGENT_NMECTL) -lnnz11 ![报错三][17] **解决方案:** 根据提示执行脚本即可 # 配置Oracle监听器 使用oracle用户登录图形化界面,执行`netca`启动NETCA,选择“Listener configuration”。 ![][19] 因为没有端口,所以默认选择添加“Add”即可 ![][20] 默认的端口名称 ![][21] 选择TCP ![][22] 选择端口范围1500-1600,这里默认使用1521 ![][24] 是否添加其他的监听端口,这里选“No”不添加 ![][25] 到这里就完成了,直接“Next”->"Finsh"即可 ![][26] # 创建Oracle数据库 使用oracle用户登录图形化界面,执行`dbca`启动DBCA ![][27] ![][28] ![][29] 填写数据库名 ![][30] ![][31] ![][32] ![][33] ![][34] ![][35] ![][36] ![][37] ![][38] ![][39] # Oracle用户管理 oracle的权限分为系统权限和对象权限。 系统权限可以让用户执行特定的指令,比如创建用户create table创建表,grant any privilege为用户赋予任何系统权限。 对象权限指的是用户可以对各个对象进行操作,delete允许用户删除表或视图的行,select允许用户从表或视图、序列(sequences)与快照(snapshots)查询信息。 每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。 ## 创建用户 oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别的用户的权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。 语法[创建用户]: `create user 用户名 identified by 口令[即密码];` 例子: `create user test identified by test;` 语法[更改用户]: `alter user 用户名 identified by 口令[改变的口令];` 例子: `alter user test identified by 123456;` ## 删除用户 语法:`drop user 用户名;` 例子:`drop user test;` 若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。 语法:`drop user 用户名 cascade;` 例子:`drop user test cascade;` ## 授权角色 oracle为兼容以前版本,提供三种标准角色(role):connect、resource和dba. **connect role(连接角色)** 临时用户,特指不需要建表的用户,通常只赋予他们connect role. connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。 拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他数据的链(link) **resource role(资源角色)** 更可靠和正式的数据库用户可以授予resource role。 resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。 **dba role(数据库管理员角色)** dba role拥有所有的系统权限 包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有 语法:`grant connect, resource to 用户名;` 例子:`grant connect, resource to test;` 用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象; 表:是数据记录的集合; 创建过程: 表空间—>用户—>表; 所属关系: 表空间 包含 用户 包含 表; [1]: https://if010.com/service/swap.html [2]: https://resource.if010.com/install_oracle_01.png [3]: https://resource.if010.com/install_oracle_02.png [4]: https://resource.if010.com/install_oracle_03.png [5]: https://resource.if010.com/install_oracle_04.png [6]: https://resource.if010.com/install_oracle_05.png [7]: https://resource.if010.com/install_oracle_06.png [8]: https://resource.if010.com/install_oracle_07.png [9]: https://resource.if010.com/install_oracle_08.png [10]: https://resource.if010.com/install_oracle_09.png [11]: https://resource.if010.com/install_oracle_10.png [12]: https://resource.if010.com/install_oracle_11.png [13]: https://resource.if010.com/install_oracle_12.png [14]: https://resource.if010.com/install_oracle_13.png [15]: https://resource.if010.com/install_oracle_13-1.png [16]: https://resource.if010.com/install_oracle_13-2.png [17]: https://resource.if010.com/install_oracle_13-3.png [18]: https://resource.if010.com/install_oracle_14.png [19]: https://resource.if010.com/install_oracle_15.png [20]: https://resource.if010.com/install_oracle_16.png [21]: https://resource.if010.com/install_oracle_17.png [22]: https://resource.if010.com/install_oracle_18.png [23]: https://resource.if010.com/install_oracle_19.png [24]: https://resource.if010.com/install_oracle_20.png [25]: https://resource.if010.com/install_oracle_21.png [26]: https://resource.if010.com/install_oracle_22.png [27]: https://resource.if010.com/install_oracle_23.png [28]: https://resource.if010.com/install_oracle_24.png [29]: https://resource.if010.com/install_oracle_25.png [30]: https://resource.if010.com/install_oracle_26.png [31]: https://resource.if010.com/install_oracle_27.png [32]: https://resource.if010.com/install_oracle_28.png [33]: https://resource.if010.com/install_oracle_29.png [34]: https://resource.if010.com/install_oracle_30.png [35]: https://resource.if010.com/install_oracle_31.png [36]: https://resource.if010.com/install_oracle_32.png [37]: https://resource.if010.com/install_oracle_33.png [38]: https://resource.if010.com/install_oracle_34.png [39]: https://resource.if010.com/install_oracle_35.png 最后修改:2022 年 11 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 -
5 条评论
谢谢
感谢分享
像根据你的内容实际操作一下
谢谢
感谢分享