0%

查看角色所具有的系统权限

1
SELECT * FROM DBA_SYS_PRIVS dsp WHERE dsp.GRANTEE ='RESOURCE';

1

查看系统中总共有多少个角色

1
SELECT * FROM DBA_ROLES dr ;

2

阅读全文 »

数据库关闭时的恢复

当数据库未打开,执行完全恢复时,可以在一个操作中恢复所有损坏的数据文件,或者分别在单个操作对 每一个损坏的数据文件进行单独恢复。

该恢复过程假设:

  • 当前控制文件可用;
  • 所有的数据文件都已备份;
  • 所有需要的归档重做日志可用
    1
    2
    3
    SELECT 'cp '|| NAME ||' /home/oracle/backup' cp_name FROM v$datafile 
    UNION ALL
    SELECT 'cp '|| NAME ||' /home/oracle/backup' FROM v$controlfile;

(未完)

配置数据库使用自动撤销管理(Automatic Undo Management)

1
2
alter system set undo_retention=86400;
show parameter undo;

1

闪回查询

1
2
3
select * from emp
update emp set sal=sal*1.5;
commit;
阅读全文 »

  1. 启动到mount状态下:
1
2
3
4
sqlplus /nolog:
--进入到sql命令窗口下:
conn /as sysdba
startup mount;
  1. 查看恢复区(闪回区)位置及大小:
1
SQL> show parameter db_recovery;
  1. 查询当前的使用状态
1
select file_type,PERCENT_SPACE_USED,NUMBER_OF_FILES from v$flash_recovery_area_usage;
  1. 物理清除归档路径下的日志文件:
1
2
3
退出sql命令窗口:
cd /u01/flash_recovery_area/ORCL/archivelog --进入到对应的归档实例日志目录
rm -rf
阅读全文 »

ORACLE在逻辑存储上分4个粒度:表空间,段,区,块.

  1. 块:是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是说当ORACLE从数据文件读数据时,是读取多少个块,而不是多少行.

  2. 区:由一系列相邻的块而组成,这也是ORACLE空间分配的基本单位,举个例子来说,当我们创建一个表PM_USER时,首先ORACLE会分配一区的空间给这个表,随着不断的INSERT数据到PM_USER,原来的这个区容不下插入的数据时,ORACLE是以区为单位进行扩展的,也就是说再分配多少个区给PM_USER,而不是多少个块.

  3. 段:是由一系列的区所组成,一般来说,当创建一个对象时(表,索引),就会分配一个段给这个对象.所以从某种意义上来说,段就是某种特定的数据.如CREATE TABLE PM_USER,这个段就是数据段,而CREATE INDEX ON PM_USER(NAME),ORACLE同样会分配一个段给这个索引,但这是一个索引段了.查询段的信息可以通过数据字典: SELECT * FROM USER_SEGMENTS来获得,

  4. 表空间:包含段,区及块.表空间的数据物理上储存在其所在的数据文件中.一个数据库至少要有一个表空间.

OK,我们现在回到HWM上来,那么,什么是高水位标记呢?这就跟ORACLE的段空间管理相关了.

阅读全文 »

官方说明

DUAL is a table automatically created by Oracle Database along with the data dictionary. DUAL is in the schema of the user SYS but is accessible by the name DUAL to all users. It has one column, DUMMY, defined to be VARCHAR2(1), and contains one row with a value X. Selecting from the DUAL table is useful for computing a constant expression with the SELECT statement. Because DUAL has only one row, the constant is returned only once. Alternatively, you can select a constant, pseudocolumn, or expression from any table, but the value will be returned as many times as there are rows in the table.

DUAL 是一个实际存在的虚表,任何用户均可读取,存在的目的是作为 from的源。

阅读全文 »

方案1:

1
2
3
4
5
6
7
8
9
10
11
12
data() {            
return {
timer: null // 定时器名称
}
},
this.timer = (() => {
// 某些操作
}, 1000)
beforeDestroy() {
clearInterval(this.timer);
this.timer = null;
}

方案2:

1
2
3
4
5
6
7
const timer = setInterval(() =>{                    
// 某些定时器操作
}, 500);
// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
this.$once('hook:beforeDestroy', () => {
clearInterval(timer);
})

参考文章vue组件里定时器销毁问题

这个权限十分隐蔽,很容易忽视

命令格式

chattr命令只能是root权限,lsattr则普通用户也可以使用

chattr [+-=] [选项] 文件或目录

  • i属性: 如果对文件设置了i属性,则不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置了i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
  • a属性: 只能对文件增加数据,不能删除和修改数据(注意不能用VIM操作,因为系统无法判断是增加还是修改),如果对目录设置a属性,则只允许目录中建立和修改文件,不允许删除。
  • =属性: 等于某个权限。

测试文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
touch abc
lsattr
# --------------e--- ./abc
sudo chattr +i abc
lsattr
# ----i---------e--- ./abc
echo 'test' > abc
# -bash: abc: Operation not permitted
rm -rf abc
# rm: cannot remove 'abc': Operation not permitted
sudo chattr -i abc
lsattr abc
# --------------e--- abc
rm -rf abc
阅读全文 »

Understand sed Linux Command

The sed command is a non-interactive text editor. Sed Linux command edits data based on the rules you provide, you can use it like this:

1
sed options file

You are not limited to use sed to manipulate files, you apply it to the STDIN directly like this:

1
2
echo "Welcome to peter page" | sed 's/page/website/'
Welcome to peter website
阅读全文 »

今天想临时简单搭个ftp给普通用户上传文件到服务器,又实在懒得配vsftp,甚至docker都懒得跑,于是想到sftp,记录一下全程:

准备上传下载的目录

1
mkdir -p /data/ftp/pub

上传下载目录的上一级目录ftp一定要root用户,而且权限是755.

1
2
chown root:root /data/ftp
chmod 775 /data/ftp
阅读全文 »