1. Oracle环境

1.1. Oracle Server安装

下载 http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

按照默认过程进行安装即可,以下为【桌面类】安装对应步骤的图示:

【服务器类】安装类似,参考以下百度分享:

https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html

1.2. OEM

Oracle Enterprise Manager (EM) Database Control

Enterprise Manager Database Control 提供了一个基于 Web 的界面,您可以使用这个界面来管理 Oracle 实例和数据库。

要从客户端浏览器访问 Oracle Enterprise Manager Database Control,必须启动 dbconsole 进程。

一定要检查OracleDbConsole有没有启动。

OEM的默认管理地址为:https://localhost:1158/em,点击【高级】并继续访问

登录的账号和口令为安装oracle时设置的,连接身份选择【SYSDBA】选项,如下:

登录成功后首页显示如下:

1.3. 配置监听

开始菜单中打开【Oracle-OraDb11g_home1】-【配置和移植工具】-【Net Configuration Assistant】网络配置

选择【监听程序】进行配置

再进行【本地网络服务名】的配置

1.4. 注册监听

配置监听后,还需要进行注册,操作如下:

打开【Net Manager】进行监听程序-添加数据库的配置:

需要注意的是【全局数据库名】和【SID】名称不要写错了,Oracle主目录为:【D:\app\Administrator\product\11.2.0\dbhome_1】(不同安装环境,目录有所差异)

再进行修改服务器上的【tnsnames.ora】和【listener.ora】配置文件:

或者通过【Oracle Net Configuration Assistant】和【Net Manager】进行配置,会同步更新至ora配置文件中。

【tnsnames.ora】配置,将默认主机名localhost或者127.0.0.1全部修改为主机IP地址:

# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.123.250)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.123.250)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

【listener.ora】,将默认主机名localhost或者127.0.0.1全部修改为主机IP地址:

# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = Oracle8)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.123.250)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Administrator

注意,设置以上更改【OracleServiceORCL】和【OracleOraDb11g_home1TNSListener】服务都需要进行重启!

1.5. 客户端的安装

客户端这里推荐安装32位的版本:【win32_11gR2_client.zip】

在win10安装会有此提示,可以忽略

进行客户端的默认安装

1.6. 客户端SqlPlus连接测试

安装客户端后,首先要进行客户端的tns配置,类似服务端的配置

本地tns配置路径:【E:\app\Administrator\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora】

以上为本地路径,根据客户端安装时选择的不同略有差异

【tnsnames.ora】内容如下,其中ip地址为安装有oracle数据库的服务器地址:

# tnsnames.ora Network Configuration File: E:\app\Administrator\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.123.250)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

打开命令提示符,进行连接测试,如下:

显示Connected即表明服务端的监听配置和客户端的TNS配置是正确的

conn system/123456@orcl代码中,system为数据库默认系统用户名,123456为安装数据库时设置的密码,@orcl是数据库的实例名称。

1.7. 表空间和用户

1.7.1. 表空间

SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。

Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。

ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。

一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。

可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。

1.7.2. 用户

Oracle安装会自动的生成sys用户和system用户

  1. sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限
  2. system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限
  3. 一般讲,对数据库维护,使用system用户登录就可以拉

通常,我们不会将system管理用户交给开发人员使用,需要创建一个普通操作权限的账号进行使用。

1.7.3. OEM创建表空间和用户

以sys管理员账号登录EM,选择【服务器】-【表空间】

选择【创建】进行新建表空间

以上,表空间【FLY】创建完成,并已设置为默认表空间。

接着开始创建用户,选择【服务器】-【用户】

设置用户一般信息(名称、口令、默认表空间等),如下:

选择【角色】标签,进行角色设置:

创建完成后,在客户端进行连接测试,如下:

1.7.4. 命令方式用户操作

做好以上准备后,我们可以针对数据添加用户并授权,以下操作均在服务端进行

打开sqlplus,使用安装Oracle时设置的密码进行登录:

上图中system为默认系统用户,可以用来进行用户的相关操作

以下脚本是用户相关的操作:

-- 查看数据库中所有用户的名称;
select username from dba_users;

-- 新建用户 用户名为【new_user_name】,密码为【new_password】
create user new_user_name identified by new_password;

-- 修改用户密码 将用户【new_user_name】重置为【new_password】
alter user new_user_name identified by new_password;

-- 删除用户
drop user new_user_name;

-- 同时删除与【new_user_name】相关的表;
drop user new_user_name cascade;

//授权 
-- 登录授权;
grant connect to new_user_name;

-- scott用户为new_user_name赋予表emp的select权限;
grant select on emp to new_user_name;

-- sys用户为new_user_name赋予表emp的select权限;
grant select on scott.emp to new_user_name;

-- 授予增删改查权限
grant select,insert,delete,update on scott.emp to new_user_name;

-- 授予 CONNECT角色和RESOURCE角色
grant connect,resource to new_user_name;

CONNECT角色: --是授予最终用户的典型权利,最基本的

  • ALTER SESSION --修改会话
  • CREATE CLUSTER --建立聚簇
  • CREATE DATABASE LINK --建立数据库链接
  • CREATE SEQUENCE --建立序列
  • CREATE SESSION --建立会话
  • CREATE SYNONYM --建立同义词
  • CREATE VIEW --建立视图

RESOURCE角色: --是授予开发人员的

  • CREATE CLUSTER --建立聚簇
  • CREATE PROCEDURE --建立过程
  • CREATE SEQUENCE --建立序列
  • CREATE TABLE --建表
  • CREATE TRIGGER --建立触发器
  • CREATE TYPE --建立类型

创建用户【fly】,密码为【1】,并授予connect和resource权限

CREATE USER FLY IDENTIFIED BY 1;

GRANT CONNECT,RESOURCE TO FLY;

以上,即基本的用户创建和权限授予操作。

https://blog.csdn.net/love_legain/article/details/54291400

1.8. PL/SQL developer

打开PLSQL Developer,选择Tools -> perference -> Connection,配置其中的Oracle Home和OCI Library项,如下图所示:

Oracle Home:E:\app\Administrator\product\11.2.0\client_1

OCI Library:E:\app\Administrator\product\11.2.0\client_1\oci.dll

tsname.ora配置:

orcl =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.60)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

1.9. 其他操作

1.9.1. 新建实例

如果对于oracle默认的实例名称并不满足,也可以自行创建实例,操作如下:

开始菜单中打开【Oracle-OraDb11g_home1】-【配置和移植工具】-【DataBase Configuration Assistant】数据库配置助手进行新建实例

安装过程较为耗时,正在安装中。。。

安装完成【退出】即可

1.10. 疑难解答

1.10.1. ORA-12541

连接Oracle时报错ORA-12541: TNS: 无监听程序

需要检查服务端的监听程序配置,【Net Configuration Assistant】检查本地网络服务名的配置。

1.10.2. EM相关账户解锁


剧情1:郁闷的开始
使用环境:win8+oracle 11g r2
前言:不知道是何种原因(多种原因),装好的oracle没有EM,那么就需要自己配置一下
PS:配置过程出现各种各样的问题,整整弄了一个晚上,现在分享,希望大家不要再走弯路

基本步骤:
1.设置好监听器, 启动监听:lsnrctl start,查看监听状态:lsnrctl statu
2.删除dbcontrol:emca -deconfig dbcontrol db
3.删除EM资料库:emca -repos drop
4.创建新资料库:emca -repos create 
5.重新配置dbcontrol:emca -config dbcontrol db

注意:
        1.cmd要使用管理员方式(否则不能备份文件)
        2.密码不能太简单,111111即可 (无法对所有EM相关账户解锁)
        3.sys的密码 记得加权限 111111 as sysdba
        4.第五步之前请确认解锁状态(理论上需要的三个账号都是open状态)

Sql代码  
1.--解锁用户   
2.alter user scott account unlock;   
3.--查询状态   
4.select username,account_status from dba_users;   
5.--重新赋值密码   
6.alter user sys identified by 111111;  
--解锁用户
alter user scott account unlock;
--查询状态
select username,account_status from dba_users;
--重新赋值密码
alter user sys identified by 111111; 
下面这句话解决“无法对所有 EM 相关帐户解锁” 的问题(这个不知道有没有效果,如果上面方式不行,那么可尝试) 
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" /v "AutoRun" /d "" /f 

运行:
    1.设置ORACLE_UNQNAME:set ORACLE_UNQNAME=ORCL  set ORACLE_SID= ORCL

    2.启动:emctl  start  dbconsole(如果上面的dbcontrol 配置成功应该是已经运行状态) 
    3.检测运行状态:emctl  status dbconsole 
    4.访问地址:https://127.0.0.1:1158/em (注意证书要确认,或者直接执行)
     5.停止:emctl  stop  dbconsole 


剧情2:发现还不行

c:>emctl start dbconsole
OC4J Configuration issue. /u01/app/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_test_orcl not found.

再一次
c:>emca -config dbcontrol db

这才ok!

http://snkcxy.iteye.com/blog/1930506

1.10.3. 重装OEM

emca -config dbcontrol db -repos recreate

https://blog.csdn.net/kai27ks/article/details/7106070

1.10.4. OEM管理地址

在ORACLE_HOME目录下的install目录中有一个portlist.ini文件

这个文件中就记录着这台数据库Server上所有实例的Enterprise Manager Console HTTP Port和Enterprise Manager Agent Port的内容(还有isqlplus的端口信息)。

如上示例中对应的地址为:【D:\app\Administrator\product\11.2.0\dbhome_1\install\portlist.ini】

Enterprise Manager Console HTTP 端口 (orcl) = 5500
Enterprise Manager 代理端口 (orcl) = 3938

1.10.5. 实例化OC4J配置文件时出错

由于安装包不完整,从官网下载需要解压两个压缩包,完整安装即解决该问题。

1.10.6. 中文乱码

在PLSQL中插入数据时,出现一个问题,PLSQL中的表里无法显示中文,中文无法保存、无法输出,中文在表中显示问号。

可以使用以下语句查看字符编码的设置:

-- 服务端编码
SELECT * FROM SYS.NLS_DATABASE_PARAMETERS;

-- 客户端编码
SELECT * FROM SYS.NLS_SESSION_PARAMETERS;

SELECT USERENV('language') FROM DUAL;

第一步:修改注册表。

开始-运行-输入regedit-回车进入注册表,依次单击HKEY_LOCAL_MACHINE--->SOFTWARE ---> ORACLE--->KEY_OraDb11g_home1(不同版本的Oracle显示的都不太一样,但都会包含home这个单词),找到“NLS_LANG”,查看数值数据是否为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,如果不是就将它设置为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK。”

第二步:修改环境变量。

设置完注册表后,接下来设置我们的环境变量,计算机(右键) --->属性--->高级系统设置--->高级--->环境变量--->新建,个人建议新建用户变量,变量名输入:“NLS_LANG”,变量值输入:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”。点击确定即可,到此我们就设置完了。

1.10.7. 时间格式

Oracle缺省的时间格式即时间数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。

向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能插入。

针对windows系列,在服务端添加环境变量,重启服务即可:

我的电脑 属性 高级 环境变量 新建 变量名 NLS_DATE_FORMAT 变量值 YYYY-MM-DD HH24:MI:SS 应用 确定

Linux系列需要修改bash_profile文件(略)。

以上方法仅对客户端的环境变量修改有效,而若要所有客户端在建立会话的时间格式起作用,可以采用创建触发器的方法。

create or replace trigger data_logon_trigger
after logon
ON DATABASE
begin
    execute immediate
        'alter session set nls_date_format = ''yyyy-mm-dd hh24:mi:ss'' ';
end;

参考引用:

listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

如何永久更改 NLS_DATE_FORMAT

nls_date_format

Why doesn't the NLS_DATE_FORMAT in my init.ora work sometimes

results matching ""

    No results matching ""