Oracle研学-介绍及安装

一 ORACLE数据库特点:

  1. 支持多用户,大事务量的事务处理
  2. 数据安全性和完整性控制
  3. 支持分布式数据处理
  4. 可移植性(跨平台,linux转Windows)

二 ORACLE体系结构

  1. 数据库:oracle是一个全局数据库,一个数据库可以有多个实例,每个实例有对应的实例名
  2. 实例:实例就是将oracle从磁盘读到内存形成一个进程,进程与进程之间互不干扰(类似于多个oracle)
  3. 数据文件(dbf):数据库的物理存储单位,数据库的数据是存储在表空间中的,一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间,数据文件被加入到表空间后就不能删除这个文件,想要删除数据文件,只能删除其所属于的表空间(一个文件叫做xx.dbf,指的是其物理名称)
  4. 表空间(管理数据文件,oracle特有):一个或多个数据文件的逻辑名称,通过逻辑名称操作一个或多个数据文件,表空间分为很多段,一个段分很多区,一个区分很多数据块(逻辑上最小的),一个数据块对应一个磁盘块(OS块物理上的)
  5. 用户:一个实例包含多个用户,一个实例包含多个表空间,一个表空间包含多个用户,表空间是个逻辑单位,用户可以建在表空间上,对应的用户创建的表也在这个表空间中(在表空间的数据文件中,若一个表空间有多个数据文件则进行随机存储)
  6. ps:表空间是一个逻辑单位,管理了很多个物理单位,这些物理的数据文件可以分布到不同的服务器上,无论最后存到哪里,只要找到表空间就能找到数据

三 虚拟机的挂载

  1. 启动vm,找到对应的vmx文件双击既可自动进行挂载

四 虚拟机增加网卡

  1. 工具栏编辑/虚拟网络编辑器
  2. 三种网卡模式:(本次操作选择仅主机)
    • 桥接模式:表示本地计算机与虚拟机处于同一个局域网,必须有外围的网络环境(需要插网线到交换机上)
    • 仅主机:表示本地计算机与虚拟机通过一根网线连接起来(不受外部网络影响)
    • NAT模式:表示本地计算机与虚拟机共享了一个ip地址(本地计算机联网了,虚拟机也能连上网,但本地计算机与虚拟机无法连接)
  3. 单击添加网络,选择网卡名称,配置子网ip和子网掩码(可以不用DHCP分配ip地址)应用确定,于本地网络中查看新增的网卡ip地址是否正确
  4. 将网卡设置给虚拟机,右击虚拟机设置网络适配器(选择自定义中的新增的网卡,自己建立的网卡网段容易改),单击确定
  5. 想要虚拟机与本地计算机在一个网络下通信,两者的ip地址必须处于同一个网段
  6. 于虚拟机控制面板/网络连接/本地连接/属性/Internet协议中将ip地址固定下来
  7. 通过ping命令进行测试两者网络是否连通

五 安装ORACLE

  1. 将本地计算机的ORACLE安装包复制到虚拟机的C盘中,双击setup.exe安装,输入对应密码(用于超级管理员账户)
  2. 安装成功后可在cmd中通过命令sqlplus system/password 进行登录(安装后默认用户名为system)
  3. 查询当前数据库所有的表select * from tabs;

六 远程连接ORACLE

  1. 本地计算机中输入sqlplus system/password@192.168.80.10:1521/orcl(orcl是实例名1521是端口号)远程连接ORACLE(通过sqlplus的工具instantclient)

七 PLSQL可视化开发工具

  1. 安装的目录中不能有空格中文(可以安装但是无法远程链接),默认安装破解

  2. 首先单击cancel,虽然没有登录但是会进入主界面(没连接数据库)

  3. 进行配置,工具的首选项的连接(connection)中配置home(instantclient工具的目录位置),library(工具目录下的oci.dll文件),之后单击apply再点击ok,需要借助ORACLE的远程连接工具才可以进行连接。

  4. 将远程的tnsnames.ora文件(oracle/product/10.2.0(版本号)/db_1/NETWORK/ADMIN/tnsnames.ora)拿到本地根目录下进行配置(告诉ORCL(本地名称)要到HOST对应的地址找orcl实例(service_name)远程实例名)保存,相当于刚才sqlplus的@符号后面的部分

  5. 配置系统变量(声明远程文件的位置),变量名为TNS_ADMIN,变量值为E:\(一般放在根目录不要放的太深)

八 可能遇到的问题

  1. 中文处理问题:select userenv('language') from dual;该函数的作用是查出当前服务器的编码格式(dual是伪表),将服务器的编码配置到本地的客户端上(复制查询出的结果SIMPLIFIED CHINESE_CHINA.ZHS16GBK),设置系统变量变量名为NLS_LANG(首字母本地语言支撑),变量值为刚才的查询结果,重新进入PLSQL生效。
  2. 可能出现中文变成?的问题,此刻进入oracle的注册表的home中查看NLS_LANG对应的值是什么,将其修改为中文编码格式,然后再回到本地pc中设置对应的环境变量
  3. ORA-12514问题:
    ① 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:
    cmd的命令行窗口下,输入lsnrctl start,回车即启动监听。
    ② 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫"orcl",那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl
    ③ 再输入sqlplus /nolog,回车
    再输入 conn / as sysdba;回车
    ④ 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。
    ⑤ 过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select * from user_tables;"测试一下,看是否有查询结果。
相关推荐
云和数据.ChenGuang4 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys5 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi5 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据5 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi6 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀7 小时前
Redis梳理
数据库·redis·缓存
独行soc7 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天7 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺7 小时前
分布式系统架构:服务容错
数据库·架构
独行soc8 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘