Oracle日常维护中管理用户以及重做日志文件的方法

一、管理用户和安全性
在db中各种对象以 用户(方案) 的方式组织管理

    select distinct object_type from dba_objects;

模式对象,schema ----> user.objects(某个用户下的某个对象)

在创建对象和访问对象前,首先创建对象的拥有者——用户
        所有的对象在用户下

用户有相关的属性,有些必须明确设置,有些可以使用默认值
        常见属性:用户名、口令、默认表空间(可默认)、临时表空间(可默认)、账户状态(可默认)、空间配额(可默认)、概要文件(可默认)等
        dba_users表

创建用户

1 确定用户对象在表空间上的分布,从而确定表空间的配额

2 确定用户的默认表空间和临时表空间,保持用户数据的独立性

        create user u1 identified by u1; --->默认 users表空间和temp表空间
        create user u2 identified by u2 default tablespace user_u2 temporary tablespace temp_u2; --->指定user_u2表空间和temp_u2表空间

3 确定用户的口令管理规则和资源闲置规则,设置Profile
                dba_users表可以查到profile文件

4 创建用户,设置口令

5 给用户赋予必要的角色和其他的直接权限
                一般要设置connect, resource给一个新用户:

grant connect, resource to u1;
        grant creata session to u1;    --->设置会话的权限

删除用户

    drop user u1;

如果用户方案中包含对象,drop user u1 CASCADE;
        当前已经连接的用户不能删除

权限

系统权限 + 对象权限
        grant授予,revoke回收
        sysdba和sysoper才能授予权限

    select * from session_privs;    --->查询当前用户的权限
    select * from session_roles;    --->查询当前用户的角色
    select * from role_sys_privs;    --->查询当前用户的角色权限
    select * from user_sys_privs;    --->查询当前用户的系统权限

二、重做日志文件
redo log files        重做日志文件或联机日志
        archived log files        归档日志
        alert log files        告警日志
        trace files        user_dump_dest   用户        background_dump_dest   进程

重做日志文件

查询

    >select * from v$logfile;   

status列:invalid该文件不可访问(不存在或添加到该组的新logfile)|stale内容不完全|deleted不再使用

    >select * from v$log;    

status列:unused未写入|current当前组,活动的|active非当前组,活动的,可能已归档也可能没有|clearing正在重建空日志(执行了alter database clear logfile),完成后变为unused状态

作用

在数据库发生故障时,可以重新处理事务
        记录对数据所做的所有更改,提供恢复机制,可以划分成组,至少两个组,每组下至少有一个成员file

写日志时按组顺序循环写,g1(f1-f2-f3-……)-g2(f1-f2-f3-……)-g3(f1-f2-f3-……)-……
        日志切换:g1-g2-g3-……   自动切换   手工切换 (alter system  switch logfile)

规划

分散原则:每个组多个成员,成员互为备份,分开到不同的磁盘。例子:

大小原则:组间切换时间满足20分钟左右的业务需求

增减删

新建组

    alter database add logfile [group <X0>] ('<logfile path&name>','',……) size <Y>, [group <X1>] ……

添加成员

    alter database add logfile member '<logfile path&name>' to group <X0>,'<logfile path&name>' ……

删除组

    alter database drop logfile group <X>, group……

active状态和current状态不可删
        删除成员

    alter database drop logfile member '<logfile path&name>','<logfile path&name>',……;

重命名成员(可以做日志移动等)

    ho cp <old> <new>
    alter database rename file '<old>' tp '<new>';

归档模式下 current状态不可重命名;非归档模式下  都可以改

【alter database noarchivelog|archivelog;】
       
异常处理

启动时日志不一致问题

    alter database clear logfile group <X>; 

active状态和current状态不可用

    alter database clear unarchived logfile group <X>;

日志文件丢失

    alter database clear logfile group <X>;

归档模式下不能clear时,

    recover database using backup controlfile;alter database open resetlog;

非归档模式不能clear时,

    alter system set "_allow_resetlogs_corruption"=true scope=spfile;

startup;

    alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';
(0)

相关推荐

  • ORACLE 报警日志如何查看?第1/2页

    1.了解oracle外部表 外部表定义:结构被存放在数据字典,而表数据被放在OS文件中的表 作用:在数据库中查询OS文件的数据,还可以将OS文件数据装载到数据库中 与其它表的区别:在外部表上不能执行DML操作,也不能在外部表上建索引,只能执行select操用 2.建一个简单的外部表1.建一个OS上的文件 因为外部表主要是查看OS上的文件,首先在OS上建一个文件mkdir -p /oracle/ext vi /oracle/ext/ext.dat 10,20,30 40,50,60 70,80,9

  • 关于Oracle listener日志解析利器的使用方法

    前言 我们在处理数据库的问题的时候,有时在数据库端看不到异常的等待,但是应用却报连接异常. 这种情况,有可能是在压力还没有传递到数据库,在网络这层已经发生问题了.如连接风暴,此时的数据库listener的进程已经忙不过来,将连接丢弃.(在主机层面可以看到tcpListeneDrop增加). 我们如果去看普通的listener日志,看到的东西是这样的: -- 24-FEB-2017 09:11:03 * (CONNECT_DATA=(SID=mynwdb)(CID=(PROGRAM=sqlplus

  • oracle 11g的警告日志和监听日志的删除方法

    oracle 11g的监听日志和警告日志都是在/u01/oracle/diag/tnslsnr/oracle/listener目录和/u01/oracle/diag/rdbms/db1/db1目录下都有以下分别简称listener目录和db1目录.这两目录下都有如下目录:alert cdump hm incident incpkg ir lck metadata stage sweep trace 其中警告日志在alert目录下,监听日志在trace目录下.listener目录下产生的日志文件比

  • Oracle Listener 动态注册 与 静态注册

    一.什么是注册 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务.) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个数据库可能对应有多个服

  • Oracle 监听器密码设置方法(LISTENER)

    监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从而造成任意新的会话都将无法建立连接.在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理.也容易导致数据库受到损坏. 1. 未设定密码情形下停止监听 [oracle@test ~]$ lsnrctl stop listener_demo92 -->停止监听,可以看出不需要任何密码即可停止 LSNRCTL fo

  • Oracle日常维护中管理用户以及重做日志文件的方法

    一.管理用户和安全性 在db中各种对象以 用户(方案) 的方式组织管理 select distinct object_type from dba_objects; 模式对象,schema ----> user.objects(某个用户下的某个对象) 在创建对象和访问对象前,首先创建对象的拥有者--用户         所有的对象在用户下 用户有相关的属性,有些必须明确设置,有些可以使用默认值         常见属性:用户名.口令.默认表空间(可默认).临时表空间(可默认).账户状态(可默认).

  • MySQL中二进制与重做日志文件的基本概念学习教程

    二进制日志 二进制日志记录了所有对数据库执行更改的操作,二进制主要有以下两种作用: 1.恢复(recovery)2.复制(replication) 二进制日志的启动:配置参数log-bin[=name],如果不指定name,则默认二进制日志文件名为主机名,后缀名为二级制日志的序列号,所在路径为数据库所在目录. 以index为后缀的文件为二进制日志的索引文件,用来存储过往生产的二进制日志. 和二进制日志相关的参数: max_binlog_size.binlog_cache_size.sync_bi

  • 小项目中管理npm包版本的思路与方法

    背景 笔者在最近碰到一个问题: 有一些项目没有类似jenkins的自动部署平台,前端部署都是本地执行npm run build命令生成压缩包,然后放到服务器上面,解压到nginx 目录, 但是有的时候遇到一个问题,比如项目中某个成员升级了其他组写的一个组件packageA,但是其他成员可能没有升级,导致上线后就会有一些问题,一个包还好,如果有好几个包都没有升级,那么可能导致一些意想不到的问题. 思路 首先就这个问题,我思考后有以下几个问题 package.json中的包名的版本有几个是用的^x.

  • PHP实现将多个文件中的内容合并为新文件的方法示例

    本文实例讲述了PHP实现将多个文件中的内容合并为新文件的方法.分享给大家供大家参考,具体如下: function test() { $hostdir= iconv("utf-8","gbk","C:\Users\原万里\Desktop\日常笔记") ; //iconv()转换编码方式,将UTF-8转换为gbk,若是报错在gbk后加//IGNORE $filesnames = scandir($hostdir); //scandir() 函数返回指

  • Yii2中使用asset压缩js,css文件的方法

    官网文档 http://www.yiiframework.com/doc-2.0/guide-structure-assets.html yii目录下运行 asset/template assets.php 生成assets.php,这是一个配置模板,并修改如下 <?php /** * Configuration file for the "yii asset" console command. */ // In the console environment, some pat

  • php中使用PHPExcel读写excel(xls)文件的方法

    本文实例讲述了PHP中使用PHPExcel读写excel(xls)文件的方法,非常实用.分享给大家供大家参考之用.具体方法如下: 很多PHP类库在读取中文的xls.csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:http://phpexcel.codeplex.com/.现将PHPExcel读写Excel的方法分别叙述如下: 1.读取xls文件内容 <?php //向xls文件写入内容 error_reporting(E_ALL); ini_set('displa

  • C#中winform使用相对路径读取文件的方法

    本文实例讲述了C#中winform使用相对路径读取文件的方法.分享给大家供大家参考.具体分析如下: 目录结构如下图所示:   方法一:由于生成的exe文件在bin\debug目录下,可以使用向上查找目录的方式获取要读取的xml文件 复制代码 代码如下: string haarXmlPath = @"../../haarcascade_frontalface_alt_tree.xml"; FileInfo file = new FileInfo(fileName); string  fu

  • linux系统中修改tomcat默认输入日志路径的方法

    1.修改catalina.sh 进入tomcat安装目录/bin,找到catalina.sh,先进行备份. 对本地的catalina.sh进行修改,这里是以将日志目录修改为/data/logs为例,即将$CATALINA_BASE/logs/catalina.out改为CATALINA_OUT=/data/logs. 2.修改logging.properties 进入tomcat安装目录/conf/,找到logging.properties,先进行备份. 对本地的logging.properti

  • 在python中使用with打开多个文件的方法

    虽然初恋是java, 可是最近是越来越喜欢python, 所以决定追根溯源好好了解下python的原理,架构等等.小脑袋瓜不太好使,只能记录下慢慢进步吧 使用with打开文件的好处不多说,这里记录一下如果要打开多个文件,该怎么书写简捷的代码. 场景是同时打开三个文件,文件行数一样,程序实现每个文件依次读取一行,同时输出. 首先来一种比较容易想到的写法,如下一样嵌套: with open('file1') as f1: with open('file2') as f2: with open('fi

  • 详解VueJS应用中管理用户权限

    在需要身份验证的前端应用里,我们经常想通过用户角色来决定哪些内容可见.比如,游客身份可以阅读文章,但注册用户或管理员才能看到编辑按钮. 在前端中管理权限可能会有点麻烦.你之前可能写过这样的代码: if (user.type === ADMIN || user.auth && post.owner === user.id ) { ... } 作为代替方案,一个简洁轻量的库--CASL--可以让管理用户权限变得非常简单.只要你用CASL定义了权限,并设置了当前用户,就可以把上面的代码改为这样:

随机推荐