CentOS7@VMware12,分配资源:CPU:2颗,内存:4GB,硬盘空间:30GB
Oracle 12C企业版64位
下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
过程纪要:
1. root身份安装依赖包:
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
2. 建立用户和组:
3. groupadd oinstall
4. groupadd dba
5. groupadd oper
6. useradd -g oinstall -G dba,oper oracle
echo "123456" | passwd --stdin oracle #oracle用户的登录密码,后续登录要用,记着。
7. 创建安装目录:
8. mkdir -p /orcl/app/oracle/product/12.1.0/db_1
9. chown -R oracle:oinstall /orcl/app
chmod -R 775 /orcl/app
10. 修改内核参数vi /etc/sysctl.conf,添加:
11. fs.aio-max-nr = 1048576
12. fs.file-max = 6815744
13. kernel.shmall = 2097152
14. kernel.shmmax = 1200000000
15. kernel.shmmni = 4096
16. kernel.sem = 250 32000 100 128
17. net.ipv4.ip_local_port_range = 9000 65500
18. net.core.rmem_default = 262144
19. net.core.rmem_max = 4194304
20. net.core.wmem_default = 262144
net.core.wmem_max = 1048576
改好后,使之生效
sysctl -p
另外 上面的kernel.shmmax = 1200000000可能会有问题,后面咱们再说。
或者你直接现在就写成4098955264
21. 改文件限制:vi /etc/security/limits.conf,添加:
22. oracle soft nproc 2047
23. oracle hard nproc 16384
24. oracle soft nofile 1024
25. oracle hard nofile 65536
oracle soft stack 10240
注意:修改此文件是即时生效的,但可能要重登录后再看
26. 以及vi /etc/pam.d/login,添加:
session required pam_limits.so
27. 修改ulimit:vi /etc/profile,添加:
28. if [ $USER = "oracle" ]; then
29. if [ $SHELL = "/bin/ksh" ]; then
30. ulimit -p 16384
31. ulimit -n 65536a
32. else
33. ulimit -u 16384 -n 65536
34. fi
fi
35. 修改环境变量。vi ~oracle/.bash_profile,添加:
36. ORACLE_BASE=/orcl/app/oracle
37. ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1
38. ORACLE_SID=orcl
39. export ORACLE_BASE ORACLE_HOME ORACLE_SID
40. PATH=$ORACLE_HOME/bin:$PATH
export PATH
41. 用yum remove *openjdk* 把系统自带的openjdk卸载,再安装sun jdk:rpm -ivh jdk-8u144-linux-x64.rpm。(下载地址)(openjdk环境安装oracle GUI会报class not found的错)。然后{content}gt;java -version检查一下安装是否成功。上述工作完成后,建议重启系统。
以上操作命令如下:
42. 以oracle用户登录,开始安装:
43. su oracle
44. cd /orcl/app/oracle
45. unzip linuxx64_12201_database.zip
46. export LANG="en_US"
47. cd /orcl/app/oracle/database
48. ./runInstaller
49. 如果出现乱码 执行
export LANG=C
注:下载好的Oracle要放到/orcl/app/oracle目录下,/orcl/app/oracle/下是2个目录:product和database。解压后的安装文件放在database下。然后就会出现安装界面,配置过程从略。需要注意的是字符集要选择unicode。如下
50. 总结界面:(如果没有任何错误就可以finish安装)
51. 请一定先执行/orcl/app/oracle/product/12.1.0/db_1/root.sh
52. cd /orcl/app/oracle/product/12.1.0/db_1
./root.sh
53. 安装完成(一切顺利,未见报错)
中间有几步忘记截图了, 操作系统组 选 dba就可以了。 其他都是下一步。
出现这个情况就是 环境变量没有设置好, 重新设置环境变量就可以了 , 使用 su -l oracle 就没问题。
export ORACLE_SID=orcl // sid为数据库实例名
export ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1/
export PATH=$PATH:$ORACLE_HOME/bin
登录数据库出现以下情况就是安装成功了。
切换到root用户, 在ORACLE_HOME下执行 ./root.sh
第二种使用 dbca的方式创建数据库, 使用dbca 响应文件创建数据库:
一:强制数据库中创建的每一个表空间都是本地管理的。本地管理表空间比弃用的字段管理技术提供更好的性能。
二:确保数据库为每一个用户分配一个默认的永久表空间,而不是system表空间
三:确保数据库会为每一个用户分配一个默认的临时表空间。
1: 找到响应文件,在oracle安装目录下查找: 就是上面保存的响应文件。 或者如下复制修改也可以。
find . -name dbca.rsp
我的目录是在:
复制该文件: cp dbca.rsp mydb.rsp
编辑该文件: vim mydb.rsp 设置以下参数:
gdbname = orcl
sid = orcl
templatename = General_Purpose.dbc
syspassword = oracle
systempassword = oracle
sysmanpassword = oracle
dbsnmppassword = oracle
datafiledestination = /u01/app/dbfile
storagetype = fs
characterset = AL32UTF8
nationalcharacterset = utf8
createAsContainerDatabase=true
接下来执行响应文件的命令:我执行dbca -silent -responseFile ./mydb.rsp 会报错,少了一个命令
正确的命令为: dbca -silent -createDatabase -responseFile ./mydb.rsp
执行完毕出现:
2:创建最优性能的表空间:
一:推荐在弃用本地管理和自动段空间管理(ASSM)特性的情况下来创建空间。
表空间的段空间管理属性可以设置为AUTO(默认值),也可以设置为 MANUAL, oracle强烈推荐使用auto(称为自动段空间管理, ASSM)
二:如果表空间中的对象大小是可变的,可以使用自动分配大小可以通过 extent management local autollocate 告诉oracle自动确定盘区大小, 如果有很好的理由将盘区大小设为一至,就可以使用 extent mangement local uniform 128k; 设置统一盘区大小128k;
三:当数据文件满了的时候,设置可以自动扩展, autoextend on next 50M maxsize 10G; 每次增长50M,最大扩充到10G;
create tablespace tools datafile '/u01/app/dbfile/orcl/tools01.dbf' size 200m autoextend on next 50m maxsize 10G extent management local autoallocate;
至此,数据库就完成了,接下来就是创建表之类的了。
3:设置开机启动监听和实例
vim /etc/oratab
orcl:/u01/app/oracle/product/12.2.0.1/db_1:N 把这个N改为Y
vim /u01/app/oracle/product/12.2.0.1/db_1/bin/dbstart
ORACLE_HOME_LISTNER=$1 改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /u01/app/oracle/product/12.2.0.1/db_1/bin/dbshut
ORACLE_HOME_LISTNER=$1 改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /etc/rc.d/rc.local
su oracle -lc "/u01/app/oracle/product/12.2.0.1/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/12.2.0.1/db_1/bin/dbstart
将rc.local 赋予执行权限,不然死活都不能开机启动
sudo chmod +x rc.local
然后reboot, 切换到oracle账号 ps -ef | grep smon
出现 ora_smon_orcl 就是 已经开启启动了
em无法访问的处理:设置一下端口就可以了
在sql中执行:
exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
查询em端口:
select dbms_xdb_config.gethttpsport() from dual;
https://mydbhost.example.com:5500/em/
oracle 性能优化攻略
启动
1.#su - oracle 切换到 oracle 用户且切换到它的环境
2.$lsnrctl status 查看监听及数据库状态
3.$lsnrctl start 启动监听
4.$sqlplus / as sysdba 以 DBA 身份进入 sqlplus
5.SQL>startup 启动 db
1.#su - oracle 切换到 oracle 用户且切换到它的环境
2.$lsnrctl stop 停止监听
3.$sqlplus / as sysdba 以 DBA 身份进入 sqlplus
4.SQL>SHUTDOWN IMMEDIATE 关闭 db
甘肃华科信息技术有限责任公司 版权所有 陇ICP备17001897号-1 甘公网安备 62010202001329 号