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

[经验分享] 整理的 Oracle 基于SQL Plus 以及技术相关

[复制链接]
YunVN网友  发表于 2016-8-15 06:31:24 |阅读模式
_______put in order MyOracle copyright @ kewen_vipI. ORACLE的主要特点:**********************************************************************************1. 支持多用户、大事务量的事务处理2. 数据安全性和完整性控制3. 支持分布式数据处理4. 可移植性II. ORACLE 技术体系结构:**********************************************************************************Oracle服务器|___________________________________________________________________________|  (物理组件)                                                     | (逻辑组件)数据库                                                          数据库实例|                                                                 |_________________                                             ________________| (物理组件)  | (逻辑组件)                       | (物理组件)     | (逻辑组件)归档日志文件        逻辑划分                后台进程PGA              内存结构SGA|*************|*************                     |*************   |***********|__数据文件   |__数据库                          |__程序进程PMON  |__共享池|__控制文件   |__表空间                          |__系统进程SMON  |_数据缓冲区|__日志文件   |__段                              |__数据读写DBWR  |_日志缓冲区|__口令文件   |__区                              |__日志读写LGW   |**********                  |__参数文件       |__数据块                          |__检查点CKPT|************* |__模式                            |*************** |*************注释:a. ORACLE 数据库: 一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等).b. ORACLE 实例:管理数据库的后台进程和内存结构的集合称为 Oracle 实例   .c. 物理结构(物理组件):物理结构包含数据库中的一组操作系统文件 .d. 逻辑结构(逻辑组件):逻辑结构指数据库创建之后形成的逻辑概念之间的关系 .e. 共享池 :共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域, 共享池由库缓存和数据字典缓存组成, 共享池的大小直接影响数据库 的性能。f. 数据缓冲区 :用于存储从磁盘数据文件中读入的数据,所有用户共享, 服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可 以在内存中找到,不需要再从磁盘读取,提高了读取速度, 数据缓冲区的大小对数据库的读取速度有直接的影响。g. 日志缓冲区 :日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区, 当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写 入日志文件中, 相对来说,日志缓冲区对数据库的性能影响较小。h. 程序全局区(PGA):包含单个服务器进程所需的数据和控制信息; 在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle 数据库连接的用 户进程所需的信息;  为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放 .i. 用户进程 :用户进程是一个需要与Oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程 .j. 服务器进程 :服务器进程用于处理连接到该实例的用户进程的请求。当用户连接至 Oracle 数据库实例创建会话时,即产生服务器进程 .k. 后台进程 :后台进程是Oracle数据库为了<script type="text/javascript" src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js" mce_src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js"></script><script type="text/javascript" src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" mce_src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js"></script>保持最佳系统性能和协调多个用户请求而设置的。 Oracle 实例启动时即创建一系列后台进程 .l. PMON 进程监控进程 :清理出现故障的进程; 释放所有当前挂起的锁定; 释放故障进程使用的资源。m. SMON 系统监控进程 :在实例失败之后,重新打开数据库时自动恢复实例; 整理数据文件的自由空间,将相邻区域结合起来; 释放不再使用的临时段。n. DBWR 数据写入进程 :管理数据缓冲区,将最近使用过的块保留在内存中; 将修改后的缓冲区数据写入数据文件中。 o. LGWR 日志写入进程 :负责将日志缓冲区中的日志数据写入日志文件; 系统有多个日志文件,该进程以循环的方式将数据写入文件。p. 数据文件 :数据文件用于存储数据库数据,如表、索引数据等。q. 控制文件 :控制文件是记录数据库物理结构的二进制文件。r. 日志文件 :日志文件记录对数据库的所有修改信息,用于故障恢复 .s. 表空间 :表空间是数据库中的基本逻辑结构,一系列数据文件的集合。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间.t. 表分区 :表分区可以将表划分为若干个区,以提高访问的效率和数据的安全。同时可以更加细化的将每张表都进行分区,有利于后期的精细恢复。y. 视图 :视图以经过定制的方式显示来自一个或多个表的数据; 提供了另外一种级别的表安全性; 隐藏的数据的复杂性; 简化的用户的SQL命令; 隔离基表结构的改变; 通过重命名列,从另一个角度提供数据IV. 基于Oracle用户实例( sys/sys、system/manager、scott/tiger)的一般操作:*********************************************************************************************************************************1. 表空间a. 创建表空间:SQL> create tablespace ts12  datafile 'e:\data.dbf' size 1M3  autoextend on4  /表空间已创建。b. 删除表空间:SQL> drop tablespace ts1 including contents and  datafiles;表空间已丢弃。2. 创建用户(表空间归属)SQL> create user aa identified by aa default tablespace ts1;用户已创建3. 授权a. 用户授权:SQL> grant connect ,resource to aa;授权成功。b. 用户撤权SQL> revoke connect, resource from aa;撤销成功。c. 权限传递(admin为系统权限)SQL> grant connect, resource to dd with admin option撤销成功。4. 用户登录SQL> conn aa/aa以连接5. 创建表SQL> create table userinfo(id number, name varchar2(5));表已创建。SQL> create table classinfo(id number, userID number, name varchar2(5));表已创建。6. 数据插入SQL> insert into userinfo values(1, 'user1');已创建 1 行。SQL> insert into userinfo values(2, 'user2');已创建 1 行。SQL> insert into userinfo values(3, 'user3');已创建 1 行。7. 数据查看SQL> select * from userinfo;ID NAME---------- ----------1 user12 user23 user38. 创建主键SQL> alter table userinfo add constraint pk_userinfo_id primary key(id);表已更改。9. 创建外键SQL> alter table classinfo add constraint fk_classinfo_userinfo_userId foreign key(userId) references userinfo(id);表已更改。10. 增加字段SQL> alter table userinfo add age number;表已更改。11. 修改字段alter table userinfo modify name varchar2(10);表已更改。12. 删除约束SQL> alter table classinfo add constraint pk_id primary key(id);表已更改。SQL> alter table classinfo drop constraint pk_id;表已更改。13. 插入其他表中的数据 :SQL> create table tb1 as select * from userinfo;表已创建。14. 创建表分区 SQL> create table userinfo(id number , name varchar2(10), age number)2  partition by range (age)3  (4   partition p1 values less than (50),5   partition p2 values less than (maxvalue)6* )SQL> /表已创建。SQL> select * from userinfo partition (p1);ID NAME                        AGE---------- -------------------- ----------1 aa                           20SQL> select * from userinfo partition (p2);ID NAME                        AGE---------- -------------------- ----------2 bb                           503 cc                           6015. 创建同义词 [SQL> grant create public synonym to aa] system/managerSQL> create synonym mytba for aa.userinfo;同义词已创建。SQL> select * from mytba;16. 创建序列 SQL> create sequence aa_seq2  start with 13  increment by 14  maxvalue 505  minvalue 16  nocycle7* cache 25SQL> /序列已创建。SQL> insert into userinfo values(aa_seq.nextval, 'sa', aa_seq.nextval);17. 创建视图SQL> create table tb1(id number, name varchar2(10), className varchar2(10));表已创建。SQL> create table tb2(id number, name varchar2(10));表已创建。SQL> create view view_tb1_tb2 as2  select tb1.name, tb2.name as ClassName from tb1, tb2视图已建立。18. 数据库的导出CMD> exp Scott/tiger file=e:\DBFile19. 数据库的导入CMD> imp system/manager file=e:\DBFile.dmp ignore=y full=y20. 触发器SQL> create trigger tri2  before insert on userinfo3  for each row4  begin5    select seq1.nextval into :new.id from dual;6  end;7  /触发器已创建SQL> select seq1.nextval from dual;NEXTVAL----------1 21.自动增长1)create sequence test_id increment by 1 start with 1 nocache;2)create or replace trigger test_triggerbefore insert on testfor each rowbeginselect test_id.nextval into :new.id from dual;end;/Oracle有关DBA_系统数据字典的相应信息数据:*********************************************************************************************************************************1. 常用数据字典USER_    记录用户对象的信息,如user_tables包含用户创建的所有表;user_views,user_constraints等;ALL_     记录用户对象的信息及被授权访问的对象信息;DBA_     记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中所有用户的信息,DBA的信息包含user和all的信息;V$ 当前实例的动态视图,包含系统管理和优化使用的视图;GV_ 分布环境下所有实例的动态视图,包含系统管理和优化使用的视图,这里的GV表示 Global v$的意思;如当前分布环境下启动多个实例:2. 基本的数据字典:DBA_TABLES  所有用户的所有表的信息;DBA_TAB_COLUMNS  所有用户的表的列(字段)信息;DBA_VIEWS   所有用户的所有视图信息;DBA_SYNONYMS 所有用户同义词信息;DBA_SEQUENCES  所有用户序列信息;DBA_CONSTRAINTS 所有用户的表约束信息;DBA_INDEXES  所有用户索引的简要信息;DBA_IND_COLUMNS 所有用户索引的列信息;DBA_TRIGGERS 所有用户触发器信息 ;DBA_SOURCE所有用户存储过程源代码信息;DBA_PROCEDUS 所有用户存储过程;DBA_SEGMENTS 所有用户段(表,索引,Cluster)使用空间信息;DBA_EXTENTS 所有用户段的扩展段信息;DBA_OBJECTS 所有用户对象的基本信息(包括素引,表,视图,序列等);CAT   当前用户可以访问的所有的基表 ;TAB  当前用户创建的所有基表,视图,同义词等;DICT 构成数据字典的所有表的信息;3. 与数据库组件相关的数据字典:数据库:  V$DATABASE   同义词 V_$DATABASE,记录系统的运行情况;表空间:  DBA_TABLESPACES  记录系统表空间的基本信息;DBA_DATA_FILES  记录系统数据文件及表空间的基本信息;DBA_FREE_SPACE 记录系统表空间的剩余空间的信息;控制文件:V$CONTROLFILE 记录系统控制文件的路径信息;V$PARAMETER 记录系统各参数的基本信息;v$CONTROLFILE_RECORD_SECTION 记录系统控制运行的基本信息;数据文件:DBA_DATA_FILES  记录系统数据文件及表空间的基本信息;v$DATAFILE  记录来自控制文件的数据文件信息;v$FILESTAT  记录数据文件读写的基本信息 ;4. 查看控制文件SQL> select name from v$controlfile;5. 查看日志文件SQL> select member from v$logfile;6. 查看数据文件SQL> select * from v$datafile;7. 查看当前用户创建的表SQL> select TABLE_NAME from user_tables;

运维网声明 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.yunweiku.com/thread-257733-1-1.html 上篇帖子: 【转】Oracle数据库设计——定义约束 主键 下篇帖子: IMP和EXP命令(Oracle数据导入导出)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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