emca 配置oracle
2018-03-06 11:13:47 qq_38334410 阅读数 3827

Oracle简介
维基百科
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。

Oracle数据特点
完整的数据管理功能:

  • 数据的大量性
  • 数据保存的持久性
  • 数据的共享性
  • 数据的可靠性

    完备关系的产品

  • 信息准则一关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显示地表示

  • 保证访问的准则
  • 视图更新准则一只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
  • 数据物理性和逻辑性独立准则

Oracle体系结构
Oracle Server(服务器)
Oracle服务器是最大的概念,包含多种文件的结构,进程结构和内存结构;但是,处理SQL语句是,并非所有这些结构都会用到.某些结构用于提高数据库的性能,确保数据库在遇到软件或硬件错误时可以恢复,或者执行维护改数据库所需的其他任务.
Oracle服务器包含两个部分:Oracle Instance(实例)和Oracle Database(数据库)

Oracle Instance(实例)
定义:访问Oracle Database的一个手段;一个instance对应一个切也只能对应一个database,一个database可以有多个instance来访问它,也就是说instance和database是多对一个的关系,在典型的去年高考下,一台机器上装的Oracle,他们俩是一对一的关系,对应集群放是(RAK)是多对一;instance也是由两个部分组成:内存(memory)和后台进程(background process)

memory有两部分组成:SGA(system global area,系统全局区)和PGA(program global area,程序全局区);一个实例就是一个SGA,SGA实例的基本组成部分;一个server process启动的时候,就有一个PGA;oracle是一个吃内存的软件,内存主要消耗在SGA上
这里写图片描述

instance是活的东西,易于消失,oracle没有启动的话,也就没有instance

SYS用户和SYSTEM用户
Oracle安装会自动的生产sys用户和system用户

  • sys用户是超级用户,具有最高权限,具有sysdba,有create database权限,改用户默认的密码change_on_install(安装时设定.用户手动给的)
  • system用户是管理操作员,权限也很大.具有sysoper角色,没有create database,默认密码是manager
  • 一般讲,对数据库维护,使用system永固登录就可以登录就可以
  • 普通用户:scott 密码:安装时内置好,系统设定,默认tiger,默认锁定的
    注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
C:> sqlplus
请输入用户名:sys
输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以。
SQL> alter user scott account unlock;
     用户已更改.
SQL> commit;
     提交完成.
SQL> conn scott/tiger
更改scott口令
新口令:tiger
重新键入新口令:tiger
口令已更改
已连接。
//完成。

创建一个用户
创建一个用户dog,密码 :1
create user dog identified by 1
给dog分配两个角色 Connect 和Resource
grant Connect, Resource to dog

数据字典解释
1.数据字典是指对数据的数据项,数据结构,数据流,数据存储,逻辑处理,外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明.
2.数据字典是一种用户可以访问的记录数据库和应用程序源数据的目录.主动数据字典是指对数据库或应用程序进行修改时,其内容可以由DBMS自动更新的数据字典.
3.数据字典的主要作用:数据字典和数据流图共同构成系统的逻辑模型.没有流通数据字典难以发挥作用.没有数据字典,数据流图就不严格.

Oracle Database
Connection(链接)和session(会话).一个Connection主要指oracle客户端与后台服务器建立的链接,即客户端与服务器之间的通道.只有当链接建立起来以后,才能建立session会话.

从物理结构分析,Oracle Database主要包括三种文件类型.Data files(数据文件), Control files(控制文件)和Redo Log files(归档日志文件)以及password file (口令文件)等

Data files(数据文件)
用于存储数据库数据,它包括数据字典,用户数据,UNDO数据,临时数据等。数据库逻辑上由一个或多个表空间Tablespace组成,而表空间在物理上由一个或多个数据文件组成。

Control files(控制文件)
用于记录和维护数据库的物理结构

Redo Log files(重做日志文件)
用于记录数据库的变化,当里程出现失败或介质失败时可以使用它进行恢复数据库.当DDL或DML时,事物会写到日志缓冲区,在特定时刻会由LGWR将这些日志写入重做日志文件.数据库中至少有两个日志文件,他们是循环使用

Archived Log files(归档日志文件)
它是重做日志的备份,它会保存全部的重做历史记录。

Password file(口令文件) 和Parameter file(参数文件)
口令文件主要用于存放超级用户的口令及其他特权用户的用户名和口令。两个文件都保存在<安装路径>/database文件夹中。

Oracle表空间
简单来说,表空间就是一个或数据文件(物理文件)的集合,所有数据对象都被逻辑的存放在指定的表空间中.
表空间的类型

  • 系统表结构: 系统自动创建的,一般存储Oracle的数据字典表和相应的数据
  • 永久表空间:用来存放永久性数据,例如系统数据,应用程序数据
  • 临时表 空间:例如Group by , order by 灯算法会用到一些临时空间,用完释放
  • 撤销表空间:用于数据恢复

1.操作永久的表空间:
创建(表空间文件为1个)

create tablespace tablesName(
    logger       -- 可将表空间的创建信息记录到Oracle的日志中
    datafile `tablespaceName.dbf`     --保存文件路径,习惯上讲表空间的名称用于文件名称
    (可设置绝对路径,相对路径的话会保存到默认目录下)
    size 64m     -- 最初的数据文件大小
    autoextend on    -- 开启自增长
    next management local --extend management 有两种方式  local:本地   dictionary(数据字典管理) 
)

创建(表空间文件为多个)

create tablespace tablespaceName 
    logger 
    datafile 
    'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --设置自增长且无上限
    'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited,
    'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited
    extent management local;

表空间增加文件

1 alter tablespace tablespaceName
2add datafile 'tablespaceName04.dbf'
3     size 64m autoextend on
4next 64m maxsize unlimited;

删除表空间

1 drop tablespace tablespaceName including contents and datafiles cascade constraints;

2.创建临时表空间

create tablespace tablespaceName 
  logger 
  tempfile 
  'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --设置自增长且不设置上线
  'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited,
  'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited
  extent management local;

简单的命令

  • 设置每页显示的数据条数: SET PAGESIZE 30;
  • 设置每行显示的字符数: SET LINESIZE 100;
  • 执行文件: @文件路径
  • 显示当前用户: SHOW USER
  • 切换登录用户: CONNECT 用户/密码(SYS用户需要) AS SYSDBA
  • 拷贝文件: HOST COPY d:hello.sql d:data.sql
2017-11-14 10:59:28 ctypyb2002 阅读数 3089

oracle 用户的 .bash_profile 文件

vi /home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl

#export ORA_NLS10=$ORACLE_HOME/nls/data
#export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
2017-08-08 15:13:39 Caide3 阅读数 1438

用exp和imp导出导入数据

导出:exp OSMPPORTAL/PORTAL@10.130.24.133:1521/omsp file=/home/oracle/osmpportal.dmp

参数:owner=(system,sys)两个用户,tables=table1,table2 只要表结构不要数据:rows=n

导入:imp ccod/ccod@192.168.30.20:1521/ccpbs16 file=/home/oracle/osmpportal.dmp fromuser=OSMPPORTAL touser=osmpportal

参数:imp 登陆的(有相应权限的)用户名/密码@oracle的ip:端口/sid file=文件目录 fromuser=导出时的用户 touser=要导入的用户

ignore=y有的表已经存在会报错,忽略


expdp和impdp

一  关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

expdp OSMPPORTAL/PORTAL@ccpbszq DUMPFILE=osmpportaldp.dmp SCHEMAS=OSMPPORTAL

http://www.cnblogs.com/huacw/p/3888807.html


ORA-01031: insufficient privileges

原因:没有赋予相应权限

一:查看数据量

1.查询是否有用户:select * from dba_users where  username='OSMPPORTAL'

2.查询当前用户总数据量:select sum(t.num_rows) from user_tables t

3.查询当前用户下各个表的数据量:select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC

4.查询表空间对应的数据文件:select tablespace_name,file_name from dba_data_files

5.查询表空间对应的数据大小:select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
6.查询数据量:select  SEGMENT_NAME,s.BYTES/1024/1024/1024 as Gb from user_segments s  where s.BYTES  is not null  order by s.BYTES desc
二:新建用户
1.新建用户:create user username identified by pwd
   注:默认表空间:default tablespace hxzg_data;
2.修改密码:alter user username identified by newpwd
3.新建的用户也没有任何权限,必须授予权限
   grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限

 grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限

 grant create table to zhangsan;//授予创建表的权限

 grante drop table to zhangsan;//授予删除表的权限

 grant insert table to zhangsan;//插入表的权限

 grant update table to zhangsan;//修改表的权限

 grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)

4.drop user username;                        //删除用户

5.赋权限:grant resource,connect to db_hxzg;

6.给其他用户访问权限(db_hxzg以DBA权限登录)

grant select any table to sun;


几个问题
1.在机器orcl上查看用户默认表空间,以便导入时创建一样的表空间
select username,default_tablespace from dba_users where username ='CMS';
 
2.查看用户使用的表空间
select DISTINCT owner ,tablespace_name from dba_extents where owner like 'CMS';
 
3.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。
select file_name,tablespace_name from dba_data_files where tablespace_name in ('WORK01');
 
4.检查B机器的表空间,看是否存在work01表空间
select name from v$tablespace where name = ‘WORK01’;
查找不到,说明没有这个两个表空间,需要创建
 
5.要导入数据的server没有work01表空间,创建:
create tablespace work01
datafile '/u01/oradata/orac/work01.dbf'
size 200m
autoextend on
next 20m
maxsize unlimited
extent management local;
 
 
6. 在要导入的数据库上查找用户是否已经存在
select username from dba_users where username='CMS';
 
如果存在:
drop user cms cascade; --(删除用户及其拥有的所有对象)
 
-- 此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop
SELECT 'alter system kill session '''||SID||','||SERIAL#||''' immediate;'
FROM V$SESSION
WHERE USERNAME='CMS';
 
alter system kill session '93,56387' immediate;
alter system kill session '100,18899' immediate;
alter system kill session '135,24910' immediate;
alter system kill session '149,3' immediate;
alter system kill session '152,3' immediate;
alter system kill session '156,7' immediate;
alter system kill session '159,45889' immediate;
alter system kill session '160,1' immediate;
alter system kill session '161,1' immediate;
alter system kill session '162,1' immediate;
alter system kill session '163,1' immediate;
 
--再复制这些语句,粘贴到sqlplus中执行,来杀掉Test2的session。
 
如果不存在cms用户:
create user cms identified bycms default tablespace work01 temporary tablespace temp;
 
不管存不存在都应该给cms授权
grant connect,resource to cms;
 
7.最后将数据导入
下面在windows的cmd下将用户导进去
imp file=e:\cms.dmp fromuser=cms touser=cms userid=cms/cms@orac
 
这里要注意的是之前我是用cms用户将数据导出来的,这个cms具有dba权限,那么这里导入的时候用的userid后面的cms也必须具有这个权限不然会报错
这里我们可以临时给cms赋予dba权限,最后回收他,但是回收之后,记得再给cms赋予resource权限NFO,USER_PROJECT_INFO) file=/home/oracle/osmp2.dmp


2019-02-15 15:20:38 qq_23633427 阅读数 1137
su - oracle  //切换到自己的oracle账户
lsnrctl start //启动oracle监听
sqlplus /nolog //登录oracle
conn /as sysdba //连接服务
startup //启动服务

不启动监听的话会出现 ORA-01034: ORACLE not available ORA-27101

Oracle环境搭建

阅读数 1773

没有更多推荐了,返回首页