设为首页 收藏本站
查看: 3072|回复: 0

[经验分享] oracle系列(一)”图文+解析”带你部署oracle数据库

[复制链接]

尚未签到

发表于 2018-9-6 12:50:39 | 显示全部楼层 |阅读模式
  博主QQ:819594300
  博客地址:http://zpf666.blog.51cto.com/
  有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!
  前言:前面我们学习过微软的sqlserver,还有甲骨文公司的mysql,也理解了数据库系统的作用,这两种数据库管理系统适用于软件,网站,游戏等后台数据库,例如我们在学习mysql的时候搭建过动态网站。但oracle属于非常安全、完善的大型数据库管理软件,在电信、银行、证券等大型应用场合拥有着绝对的优势。那么今天就给搭建介绍oracle的安装和基本的使用。Oracle可以安装到windows和linux系统上,但企业更多采用在linux上安装,接下来就以redhat6.5为例。
  一、安装redhat6.5
  1)语言选择中文简体(为了更好的支持oracle中文版)
  2)选择“开发”中的所有选项(开发里面的5个选项全部打√)
  二、安装oracle的准备工作
  1、系统及配置要求
  1)确认linux系统的版本
DSC0000.jpg

  2)物理内存:必须高于1G
  物理内存应不少于1GB,对于VMWARE虚拟机建议不少于1200MB.对于系统中的交换分区设置,应参以下约定:物理内存为1GB~2GB时,交换分区为物理内存的1.5~2倍;物理内存为2GB~16GB时,交换分区与物理内存大小相同;物理内存超过16GB时,交换分区使用16GB就可以了。
DSC0001.jpg

  3)硬盘空间:企业版需要5.65G,还要确保/tmp目录所在的分区空间不少于1G,建议总的空间给8G以上
DSC0002.jpg

  4)确定主机名之后修改hosts文件(安装好oracle之后再修改主机名会导致数据库启动失败)
DSC0003.jpg

DSC0004.jpg

DSC0005.jpg

  2、配置yum,安装支持包
DSC0006.jpg

DSC0007.jpg

  还需要安装pdksh包,但是Redhat6.5光盘中的ksh存在兼容性冲突,所以需要单独安装pdksh-5.2.14-37.el5_8.1.x86_64.rpm,使用rpm安装即可。
DSC0008.jpg

  3、调整内核参数
  内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl –p命令使新配置立即生效。
DSC0009.jpg

DSC00010.jpg

DSC00011.jpg

  各参数详解:
  fs.aio-max-nr
  此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
  fs.file-max
  该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
  kernel.shmall
  该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求.
  kernel.shmmax
  是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
  官方建议值:
  32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。
  64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887。
  kernel.shmmni
  该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
  kernel.sem
  以kernel.sem = 250 32000 100 128为例:
  250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
  32000是参数semmns的值,表示系统内可允许的信号量最大数目。
  100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
  128是参数semmni的值,表示系统信号量集合总数。
  net.ipv4.ip_local_port_range
  表示应用程序可使用的IPv4端口范围。
  net.core.rmem_default
  表示套接字接收缓冲区大小的缺省值。
  net.core.rmem_max
  表示套接字接收缓冲区大小的最大值。
  net.core.wmem_default
  表示套接字发送缓冲区大小的缺省值。
  net.core.wmem_max
  表示套接字发送缓冲区大小的最大值。
  4、oracle用户要求
  Oracle需要固定的运行用户oracle,安装组oinstall,管理组dba,这些账号需要提前建立好。此外用来存放oracle程序及数据库文件的基本目录/opt/oracle也应该提前创建好。
  1)建立用户和组
DSC00012.jpg

  2)建立相关目录
DSC00013.jpg

  5、Oracle11g的安装任务应以运行用户oracle的身份执行,需适当调整oracle用户的环境配置以便满足要求。Oracle11g安装界的语言类型取决于环境变量LANG,若希望用中文安装界面,则应确保LANG变量的值为”zh_CN.UTF-8”。中文安装界面有时会因缺少字体、字体配置不当等原因导致界面乱码。这时可以改用”en_US.UTF-8”英文环境以回避类似问题。
DSC00014.jpg

DSC00015.jpg

  6、为oracle用户设置Shell限制:为了优化性能,需要添加oracle用户的限制参数。进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证。
  修改/etc/security/limits.conf,将用户oracle能够打开的进程数、进程使用的文件数加载。
DSC00016.jpg

DSC00017.jpg

DSC00018.jpg

DSC00019.jpg

  7、配置oracle用户资源限制,不配置也不会影响oracle数据库的成功安装,但是考虑到若有糟糕的sql语句对服务器资源的无限占用,导致长时间对用户请求无响应,建议提前限制oracle用户资源。
DSC00020.jpg

DSC00021.jpg

  8、解决中文乱码问题
  在RHEL6.5中安装oracle11g时,中文安装界面乱码,解决方法:
  在Linux命令提示符下执行以下命令,把字体库安装到相应位置即可
DSC00022.jpg

  9、关闭防火墙和selinux,并设置永久ip地址和主机名(主机名和IP在前面都已经完成)
DSC00023.jpg

DSC00024.jpg

  以上所有的准备工作完成之后一定要重新启动系统
  三、正式安装oracle
  1、下载oracle11g软件包到系统/home/oracle中,并解压缩软件包
DSC00025.jpg

  2、授权允许用户oracle使用图形终端,例如执行:xhost + oracle@localhost,表示允许用户oracle从本机访问,或者执行xhost + 表示取消所有限制,这里执行xhost +即可。
DSC00026.jpg

  3、执行安装程序
DSC00027.jpg

  4、配置安全更新
DSC00028.jpg

  5、安装选项,选择“创建和配置数据库”
DSC00029.jpg

  6、在系统类中选择“服务器类”
DSC00030.jpg

  7、网格选项中选择“单实例数据库安装”
DSC00031.jpg

  8、安装类型选择“典型安装”。如果为各种管理账号分别设置口令,或者选择语言版本,设置自动备份,存储管理等,则应选择“高级安装”。
DSC00032.jpg

  9、典型安装的配置,必须设置管理员口令,其它参数采用默认值,系统将自动创建3个用户,分别是:超级管理员sys,system和数据库所有者sysman,当选择高级安装时,可以为3个用户分别设置口令,否则将使用同一个管理口令。
DSC00033.jpg

  10、创建产品清单,将清单目录修改为/opt/oracle/oralnventory,以便oracle用户有权限写入oracle数据库的清单信息。
DSC00034.jpg

  11、先决条件检查及概要,出现下面的程序包状态失败,因为这些包是32位的包,而我们的系统是64位的,所以不用理会,点击“全部忽略”。然后点击“下一步”。
DSC00035.jpg

  可以保存响应文件,以后安装oracle时可以使用这个脚本执行安装,就不用配置这么多了。(保存为/home/oracle/db.rsp文件,“.rsp文件是oracle数据库的应答响应文件,可用来免除安装过程中的手动交互环节”)
DSC00036.jpg

DSC00037.jpg

DSC00038.jpg

  12、正在安装中......
DSC00039.jpg

DSC00040.jpg

  13、当弹出“口令管理”的窗口时,单击“口令管理”按钮,将用户scott解锁,修改完成后,单击“确定”按钮。
DSC00041.jpg

DSC00042.jpg

DSC00043.jpg

  14、完成安装
  文件复制及相关部署结束之后,会弹出“执行配置脚本”对话框,根据提示切换为root用户并以此执行脚本,如下所示。
DSC00044.jpg

DSC00045.jpg

  最后单击“确定”按钮,会提示访问https://oracleserver:1158/em/,使用此地址访问OEM(企业管理器)平台,以便对oracle数据库实例进行管理。
DSC00046.jpg

  四、验证安装结果
  1、访问OEM平台(OEM平台可以进行图像化管理oracle,比较方便)。
  在浏览器中输入:https://oracleserver:1158/em/,输入用户名:sys,密码123456,连接身份选择SYSDBA
DSC00047.jpg

DSC00048.jpg

DSC00049.jpg

DSC00050.jpg

  2、使用sqlplus命令行访问oracle数据库
  在命令行界面中输入:sqlplus  sys/123456 as sysdba
DSC00051.jpg

  或者:
DSC00052.jpg

  1)执行HELPINDEX命令查看所有可以使用的命令
DSC00053.jpg

  2)执行SHOWUSER可以查看当前登录的用户
DSC00054.jpg

  五、配置oracle和OEM随机启动
  完成oracle11g数据库的安装后,相关服务器会自动启用,但并不表示下次开机后oracle服务器仍然可用。下面将介绍oracle的基本服务组件,以及如何编写服务脚本来控制oracle数据库系统的自动运行。
  根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin子目录下。
  Oracle11g数据库的基本服务组件如下所述:(注:oracle服务组件最好以oracle用户身份运行如:su - oracle)
  lsnrctl:监听器程序,用来提供数据库访问,默认监听TCP 1521端口。
  dbstart、dbshut:数据库控制程序,用来启动、停止数据库实例。
  emctl:管理器控制工具,用来控制OEM平台的开启与关闭,OEM平台通过1158端口提供HTTPS访问,5520端口提供TCP访问。
  为了方便执行oracle11g的服务组件程序,建议对所有用户的环境配置作进一步的优化调整、补充PATH路径、oracle终端类型等变量设置。除此以外,还应该修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例。
  用root用户来修改
  1、修改/etc/oratab,修改内容如下:
DSC00055.jpg

DSC00056.jpg

  2、修改/etc/rc.local文件,在文件末尾增加如下:
DSC00057.jpg

DSC00058.jpg

  3、建立oracle服务的启动脚本:(可以不做)
  虽然通过各种服务组件程序能够启动、停止整个oracle11g数据库系统,但显然还不够方便,在RHEL6服务器中,更好的做法是将相关操作编写为服务脚本,交给chkconfig工具来管理,从而实现随系统开、关机自动启动、停止oracle数据库。
  vi/etc/init.d/oracle ,输入如下内容:
DSC00059.jpg

DSC00060.jpg

  给脚本设置权限并添加为系统服务
DSC00061.jpg

  添加好oracle服务后,就可以通过脚本的start、stop、status、restart参数来控制oracle数据库的启动、停止、查看状态、重启了。
  六、常见系统控制命令
  1、执行”lsnrctl start”命令可以启动oracle监听器。
  2、执行”lsnrctl status”命令可以查看oracle监听器的状态。
  3、执行”emctl stop dbconsole”命令可以关闭OEM管理控制台。
  4、执行”dbshut $ORACLE_HOME”命令可以停止数据库实例。
  5、执行”dbstart  $ORACLE_HOME”命令可以启动数据库实例。
  6、使用sqlplus命令工具时,若以超级管理员sys登录,则在”SQL>”环境中执行”STARTUP;”、”SHUTDOWN IMMEDIATE;”指令也可以启用、关闭默认的数据库实例。
  七、配置oracle命令行可以翻页和清屏
  1、下载3个包:
  1)IO-Tty-1.07.tar.gz
  2)Term-ReadLine-Gnu-1.16.tar.gz
  3)uniread-1.01.tar.gz
  2、安装
  1)解压缩
DSC00062.jpg

  2)安装第一个包
DSC00063.jpg

  3)安装第二个包
DSC00064.jpg

  4)安装第三个包
DSC00065.jpg

  3、登录oracle:在命令前加 uniread
  原来登录是: sqlplus sys/123456 as sysdba
  现在是: unireadsqlplus sys/123456 as sysdba(如果这个命令在root用户里面无法用,就切换到oracle用户下用即可)
DSC00066.jpg

  八、创建数据库
  如果在安装oracle产品时选择不建立数据库,那么要使用oracle系统就必须先创建数据库,如果在安装oracle产品时选择建立数据库,也可以再创建第二个数据库。
  创建数据库有两种方法:一种通过图形界面;另一种采用create  database命令,下面介绍图形界面的方法。
  在linux中,运行数据库配置助手(DBCA),执行$ORACLE_HOME/bin目录下执行DBCA
  1、执行netca启用监听的方法(如果没有启用需要做这一步)(为了使客户端能连接到oracle实例,以及有些命令也需要启用监听)
DSC00067.jpg

DSC00068.jpg

DSC00069.jpg

DSC00070.jpg

DSC00071.jpg

DSC00072.jpg

DSC00073.jpg

DSC00074.jpg

DSC00075.jpg

  或者使用命令启动监听:
DSC00076.jpg

  2、运行DBCA
DSC00077.jpg

DSC00078.jpg

DSC00079.jpg

DSC00080.jpg

DSC00081.jpg

DSC00082.jpg

DSC00083.jpg

DSC00084.jpg

DSC00085.jpg

DSC00086.jpg

DSC00087.jpg

DSC00088.jpg

DSC00089.jpg

DSC00090.jpg

DSC00091.jpg

DSC00092.jpg

DSC00093.jpg

DSC00094.jpg

DSC00095.jpg

  注意:建议一台服务器上只创建一个数据库,安装oracle的时候我们创建过一个orcl数据库,平时做实验使用orcl即可。(当然,我们需要学会创建新的数据库)
  补充:连接新建立的数据库(把原来BENET数据库的监听器listener1换成新的监听器listener2)
  1)打开dbca配置数据库监听
DSC00096.jpg

DSC00097.jpg

  2)选择数据库BDQN
DSC00098.jpg

  3)将数据库BENET注册给监听器
DSC00099.jpg


  (其实也中间有个BUG,就是先点共享服务模式-完成-确定-取消)



  4)启用监听

  5)连接到BENET数据库

  九、启动关闭数据库
  1、数据库的启动
  启动(startup)一个数据库需要3个步骤
  1)启动oracle实例
  2)由实例安装数据库
  3)打开数据库
  在startup命令中,可以通过不同的选项来控制数据库的不同的启动步骤。
  NOMOUNT选项:
  nomount:已经通过参数文件知道控制文件在哪个位置,但是还没有读取控制文件。主要的作用就是启动一个实例,读取init.ora初始化参数文件,启动后台进程,初始化全局SGA
  MOUNT选项:
  读取了控制文件,通过控制文件知道了其他文件(数据文件和日志文件),此时并没有读取数据文件和日志文件,这个状态叫mount状态。启动实例并且安装了数据库,但没有打开数据库。这种打开方式常在数据库维护操作中使用,例如对数据文件更名,改变重做日志及打开归档方式等,在这种打开方式下,除了可以看到SGA  系统列表以外,系统还会给出“数据库装载完毕”提示。
  Open选项:
  读取完控制文件之后,找到了数据文件和日志文件,数据库就处于OPEN状态了。
  startupnomount|mount|open
  shudownnormal|immedieate|transactional|abort
  注意:如果仅仅执行startup命令,将会完成启动实例,安装实例和打开数据库的所有3个步骤,这是系统出了可以看到前面startup mount方式下所有提示外,还会给出一个“数据库已经打开”的提示,此时,数据库系统处于正常的工作状态,可以接收用户请求。
  如果使用startup  nomount 命令或者startup  mount命令,必须采用alter  database命令执行打开数据库操作,例如:如果以startup nomount方式打开数据库,也就是说实例已经启动,但是数据库没有安装和打开,这是必须运行下面的两条命令,数据库才能正确启动。
  ALTER DATABASE MOUNT;
  ALTERDATABASE OPEN;
  如果以startup  mount方式启动数据库,只需要运行下面一条命令即可打开数据库
  ALTERDATABASE OPEN
  2、执行startup命令


  注意:
  oracle11g数据库在执行dbca或者调整sga后重启oracle的时候可能会出现ORA-00845MEMORY_TARGET not supported on this system 错误。
  究其原因就是Linux系统的shm的大小比SGA设置的小,造成的,距离来说,SGA设置4G,而shm可能只有1G
  解决办法:
  调整shm的大小,具体操作如下:
  vi/etc/fstab
  修改如下行的设置
  tmpfs/dev/shm tmpfs defaults 0 0
  改成
  tmpfs/dev/shm tmpfs defaults,size=6G 0 0
  保存退出
  重新mount下shm使其生效
  mount-o remount /dev/shm
  3、关闭数据库

  4、开始startup  nomount状态


  5、修改数据库到open状态



  总结:startup这一条命令等于“startupnomount”+“>  6、数据库的关闭
  normal:这是默认选项,使用该选项时,不允许任何新的用户连接,但是允许继续当前的所有连接,只有所有用户(自愿的)退出登录时,数据库才能真正的关闭。
  通常,正常的数据库关闭是没有意义的,即使只剩下database control在运行,也总是存在未退出登录的用户。也许关闭一个数据库需要几天或更长的事件(如果用户一直没有自己关闭)
  immediate使用这个选项时,不允许任何新的用户连接,当前的所有连接的会话都被终止。任何活动的事务都会都将回滚,随后数据库会被关闭。是一种常用的关闭数据库方式,快速关闭数据库。
  transactional:使用这个选项时,不允许任何新的用户连接,没有存在于某个事务中的现有会话被终止,允许当前位于某个事务中的会话在完成该事务之后终止。一但所有会话终止,数据就会被关闭(使用shutdown  immediate)
  abort:就oracle而言,使用这个选项相当于断电。实例被立即终止。此时,任何数据都不会被写入磁盘。但是在下一次启动数据库的时候,速度比较慢(需要实例恢复)。建议在以下情况使用这种方式。
  1)数据库一直处于非正常的工作状态,不能用shutdownnormal或者shutdown immediate命令关闭。
  2)需要立即关闭数据库
  3)在启动数据库实例时遇到问题

  十、使用Navicat for Oracle工具远程图形化管理oracle
  1、在win7宿主机上安装软件Navicat for Oracle。

  下面的全是下一步即可。
  2、新建连接

  3、点击高级---角色选择sysdba,位置选择图片设置的位置。

  4、查看数据库

  十一、Sql语句以及基本操作
  1、使用scott用户连接数据库服务器
  如果锁定了scott,则需要解锁

  修改密码并且登录服务器

  2、查看scott用户的数据库下所有的表

  3、新建表products

  4、查看表products的结构
  Descproducts
  5、设置自动提交事物
  Set  autocommit on
  6、格式化字段
  1)在图形化查看emp表。

  2)在sqlplus查看emp表

  上图看出来布局很乱
  3)格式化

  4)再次查询

  举例说明格式化问题:
  SQL> conn sys/123.abcas sysdba;
  已连接。
  SQL>selectfile_name,tablespace_name from dba_data_files;
  SQL>col file_name fora55;
  SQL>coltablespace_name for a10
  SQL>selectfile_name,tablespace_name from dba_data_files;
  FILE_NAME                        TABLESPACE
  -----------------------------------------------------------------
  /u01/app/oracle/oradata/orcl/users01.dbf      USERS
  /u01/app/oracle/oradata/orcl/undotbs01.dbf      UNDOTBS1
  /u01/app/oracle/oradata/orcl/sysaux01.dbf        SYSAUX
  /u01/app/oracle/oradata/orcl/system01.dbf        SYSTEM
  /u01/app/oracle/oradata/orcl/example01.dbf     EXAMPLE
  目前默认一行可以显示80字符,超过80字符就会换行。
  SQL>show linesize;
  linesize 80
  SQL>set linesize 60;
  可以查看以下显示效果:
  SQL>selectfile_name,tablespace_name from dba_data_files;
  一次默认显示14行
  SQL>col username fora30
  SQL>select usernamefrom dba_users;
  一次默认显示14行
  SQL>showpagesize;
  pagesize 14
  修改默认显示的行为100
  SQL>set pagesize 100
  SQL>select usernamefrom dba_users;
  以上的col file_name for a10、linesize、pagesize的设置只在当前会话中有效,断开连接之后就不会再有效果了。可以通过修改$ORACLE_HOME/sqlplus/admin/下的glogin.sql实现
  [oracle@orclsrv ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/sqlplus/admin/
  [oracle@orclsrv admin]$ls
  glogin.sql help  libsqlplus.def  plustrce.sqlpupbld.sql
  [oracle@orclsrv admin]$
  [oracle@orclsrvadmin]$vimglogin.sql
  添加常用的一些参数
  setpagesize 100
  setlinesize 120
  coldname for a20
  colloc for a15
  colfile_name for a55
  coltablespace_name fora10
  col name for a20


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-564086-1-1.html 上篇帖子: 9、oracle网络配置 下篇帖子: 第1章 Oracle的简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表