반응형

오라클 서버 설치후 시스템 계정의 비밀번호를 까먹는 경우가 종종 있습니다.

이럴때 간단하게 시스템 계정의 비밀번호를 찾는 방법이 있어 포스팅 해보겠습니다.

또한, 일반 사용자에 대한 비밀번호 변경 하는 방법도 포스팅 하겠습니다.

 

 

1. 시스템 계정 비밀번호 찾기

  - 기본 시스템 계정은 sys , system 계정이 있습니다.

 

1-1. "Run SQL Command" 사용시

  가. 오라클 11g를 설치 할 경우 "Run SQL Command Line" 을 실행 합니다.

 

  나. conn 입력 후 엔터치면 사용자 명을 입력 하라고 합니다.

 

  다.  사용자명에 "sys as sysdba" 입력 합니다.

 

  라. 비밀번호는 없이 엔터를 입력 합니다.

 

  마. 그럼 Connected. 라고 하면서 접속이 됩니다.

 

  바. 접속 후 alter user sys identified by 1234; 로 비밀번호를 변경 합니다.

       (sys 는 계정명 입니다. 1234 는 변경할 비밀번호 입니다.)

 

  사. 또한, system 계정의 비밀번호도 변경 합니다.

 

   - Run SQL Command Line 실행 캡쳐 화면

 

1-2 cmd 사용시

  가. 윈도우에 보조프로그램에 명령프롬프트 실행

       또는 윈도우+r 실행 후 cmd 입력후 실행

 

  나. sqlplus 입력 합니다.

 

  다.  사용자명에 "sys as sysdba" 입력 합니다.

 

  라. 비밀번호는 없이 엔터를 입력 합니다.

 

  마. 그럼 Connected. 라고 하면서 접속이 됩니다.

 

  바. 접속 후 alter user sys identified by 1234; 로 비밀번호를 변경 합니다.

       (sys 는 계정명 입니다. 1234 는 변경할 비밀번호 입니다.)

 

  사. 또한, system 계정의 비밀번호도 변경 합니다.

 

   cmd 창으로 비밀번호 변경 실행 화면 캡쳐

 

 

2. 일반 사용자 비밀번호 변경

  - 일반 사용자의 비밀번호는 DBA권한이 있는 sys 계정으로 접속해야 합니다.

  - 접속후 alter user 계정 identified by 비밀번호; 명령으로 비밀번호 변경이 가능합니다.

  - 변경 후 conn 명령으로 계정 접속을 해봅니다. (저는 TUSER 계정의 비밀번호 변경 후 접속 해 보았습니다.)

 

 

 

 

일반사용자 및 시스템계정의 비밀번호 변경에 대해서 알아보았습니다.

비밀번호는 단순하게 1234로 변경 하였지만, 실제로 사용하시는 비밀번호는 특수문자 및 대소문자가 포함된 비밀번호를 사용하시기 바랍니다.

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

1. 스케쥴 등록

 

SET GLOBAL event_scheduler = on;

SET @@global.event_scheduler = on;

SET GLOBAL event_scheduler = 1;

SET @@global.event_scheduler = 1;

 

또는 

 

my.cnf or my.ini 에 옵션(event_scheduler=On)을 추가하고 mysql 을 시작한다.

 

 

 

CREATE EVENT [이벤트명]

ON SCHEDULE [스케쥴 시간]

STARTS [시작시간] /* 선택 */

ENDS [종료시간] /* 선택*/

DO

[수행할 쿼리]

 

ex)

SET GLOBAL event_scheduler = on;

SET @@global.event_scheduler = on;

SET GLOBAL event_scheduler = 1;

SET @@global.event_scheduler = 1;

 

CREATE EVENT e_doc_stat

ON SCHEDULE 

EVERY 1 day

#   STARTS CURRENT_TIMESTAMP /* 선택 */

# STARTS NOW() /* 선택 */

STARTS '2017-12-19 01:00:00'

DO

CALL hive_global.PROC_DOC_STAT(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%Y-%m-%d'));

 

* STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE     와 같은 형태로도 사용 가능

 

 

2. 등록된 스케쥴 확인

show events;

 

 

3. 스케쥴 삭제

delete from mysql.event where name='e_doc_stat';

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

[테이블 생성]

table name : calendar

calendar_seq(int) 
date(varchar)
day(varchar)

[yyyymmdd, 요일의 데이터 삽입]
(날짜에 대한 데이터 삽입 공간을 위해서 의미없는 조인과 함께 공간은 만든 후, between 을 통한 날짜를 넣는다.)

INSERT INTO calendar

(calendar_seq, date, day) 

select rnum as calendar_seq,

       date_format((date_add('20050101', interval rnum - 1 day)),'%Y%m%d') as date, 

       dayname(date_format((date_add('20050101', interval rnum - 1 day)),'%Y%m%d')) as day

  from (

        select @rnum := @rnum + 1 as rnum

          from (

                select @rnum := 0 

               ) a, 아무개 table , 아무개 table, 아무개 table  
       ) c

 where date_format((date_add('20050101', interval rnum - 1 day)),'%Y%m%d') between '20100101' and '20151231';


[select 달력 뷰] 

 

             select max(if(a.day = 'sunday', date_format(a.date, '%d'), '')) as 일, 

                      max(if(a.day = 'monday', date_format(a.date, '%d'), '')) as 월,

                      max(if(a.day = 'tuesday', date_format(a.date, '%d'), '')) as 화,

                      max(if(a.day = 'wednesday', date_format(a.date, '%d'), '')) as 수,

                      max(if(a.day = 'thursday', date_format(a.date, '%d'), '')) as 목,

                      max(if(a.day = 'friday', date_format(a.date, '%d'), '')) as 금,

                      max(if(a.day = 'saturday', date_format(a.date, '%d'), '')) as 토

               from calendar a

             where a.date like '201103%'

              group by WEEK(a.date,0)

#  실무에 적용 해본바는 없고 -효용성에 대해서도 잘 모르지만-
   회사에서 내준 숙제(?)이기에 만들어진 SQL 야매 달력뷰


 

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형
더보기

안녕하세요.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다!


이번 포스팅에서는

 

1. mysql 기본키 삭제 방법

 

2. 여러 컬럼을 기본 키로 변경하는 방법에 대해 

 

공부합니다.

 

이 포스팅에서 가정되어야 할 부분은.

이미 테이블을 생성한 상태이고 어떠한 컬럼을 기본키로 지정한 경우에 해당합니다.

 

 

1. 기본키 삭제

alter table 'tableName'

drop primary key

기본키의 속성에 따라서 삭제가 안되는 경우가 발생하는데요.

하나의 경우가 기본키가 auto_increment 일 경우입니다.

이런 경우에는 먼저 auto_increment 속성을 삭제하고 기본키를 삭제하면 됩니다.

 

2. 다중 컬럼을 기본키로 변경

( 컬럼을 변경할 때는 기본키가 삭제된 상태여야 합니다. 엄밀히 말하면 변경이 아니라 추가겠죠? )

alter table 'tableName'

add constraint primary key (column1, column2, ...)

 

이상입니다. 간단하죠?




반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

 

- 테이블명 : test

- 컬럼명 : Col2

- 데이터타입 : varchar (255)

 

 

ALTER TABLE `test` 

ADD COLUMN `Col2` varchar(255)


 

기본값 추가 (디폴트값 Null)

 

ALTER TABLE `test` 

ADD COLUMN `Col2` varchar(255) NULL DEFAULT NULL


 

 

캐릭터 Set 지정 (UTF-8)

 

ALTER TABLE `test` 
ADD COLUMN `Col2` varchar(255) CHARACTER SET utf8 COLLATE utf8_

general_ci NULL DEFAULT NULL

 


 

코멘트 및 위치 지정 (코멘트 : 컬럼1, 위치 : Col1 컬럼 뒤)

 

ALTER TABLE `test` 
ADD COLUMN `Col2` varchar(255) CHARACTER SET utf8 COLLATE utf8_

general_ci NULL DEFAULT NULL COMMENT '컬럼1' AFTER `Col1`

 


반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

begin 
         FOR cur IN (SELECT OBJECT_NAME, OBJECT_TYPE
           FROM sys.USER_objects 
           WHERE  status = 'INVALID' ) LOOP 
          BEGIN
         if cur.OBJECT_TYPE = 'PACKAGE BODY' then 
          EXECUTE IMMEDIATE 'alter ' || cur.OBJECT_TYPE || ' "' ||  cur.OBJECT_NAME || '" compile body'; 
         else 
          EXECUTE IMMEDIATE 'alter ' || cur.OBJECT_TYPE || ' "' || cur.OBJECT_NAME || '" compile'; 
         end if; 
EXCEPTION
   WHEN OTHERS THEN NULL; 
END;
         end loop; 
         end;
         

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

SELECT
  TO_CHAR(NEXT_TIME,'YY/MM/DD(DY) HH24') "NEXT_TIME"
, COUNT(DISTINCT NAME) "TOTAL_ARC_COUNT"
, ROUND(SUM(DISTINCT BLOCKS*BLOCK_SIZE)/1024/1024/1024,2) "TOTAL_SIZE_GB"
, SUM(CASE WHEN INST_ID = 1 AND THREAD# = 1 THEN 1 ELSE 0 END) "RAC1"
, SUM(CASE WHEN INST_ID = 2 AND THREAD# = 2 THEN 1 ELSE 0 END) "RAC2"
, SUM(CASE WHEN INST_ID = 3 AND THREAD# = 3 THEN 1 ELSE 0 END) "RAC3"
, SUM(CASE WHEN INST_ID = 4 AND THREAD# = 4 THEN 1 ELSE 0 END) "RAC4"
FROM GV$ARCHIVED_LOG
WHERE NEXT_TIME >= TRUNC(SYSDATE) -10
GROUP BY TO_CHAR(NEXT_TIME,'YY/MM/DD(DY) HH24')
ORDER BY 1;



select * 
  from GV$ARCHIVED_LOG;
  
  
  select * from v$recovery_file_dest;
  
  select * from V$ARCHIVED_LOG;
  
  select * from v$archive;
  
  select * from v$log;
  
  select * from v$archive_dest;
  
  select * from v$archive_processes;
 
 select dest_name, name, sequence#, b.status
  from v$archive_dest a, v$archived_log b
  where a.dest_id = b.dest_id;

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

오라클(oracle) 락(lock) 확인 및 제거(kill)
============================================================================

 

-- 락걸린 테이블 확인
SELECT do.object_name, do.owner, do.object_type, do.owner,
vo.xidusn, vo.session_id, vo.locked_mode
FROM
v$locked_object vo , dba_objects do
WHERE vo.object_id = do.object_id ;

 

 

--해당테이블이 락에 걸렸는지..

SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAME
FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C
WHERE A.SID=B.SID AND B.ID1=C.OBJECT_ID
AND B.TYPE='TM' AND C.OBJECT_NAME IN ('테이블명');

 

 

/* 락발생 사용자와 sql, object 조회 */

SELECT distinct x.session_id, a.serial#,
d.object_name, a.machine, a.terminal,
a.program, b.address, b.piece, b.sql_text
FROM v$locked_object x, v$session a, v$sqltext b, dba_objects d
WHERE x.session_id = a.sid and
x.object_id = d.object_id and
a.sql_address = b.address
order by b.address,b.piece;

 

 

/* 락 발생 사용자확인 */

SELECT distinct x.session_id, a.serial#,
d.object_name, a.machine, a.terminal, a.program,
a.logon_time , 'alter system kill session ''' || a.sid || ', ' || a.serial# || ''';'
FROM gv$locked_object x, gv$session a, dba_objects d
WHERE x.session_id = a.sid and x.object_id = d.object_id
order by logon_time;

 

 

/* 접속 사용자 제거 */

--alter system kill session 'session_id,serial#';
alter system kill session '26,6044';

 

 

/* 현재 접속자의 sql 분석 */

SELECT distinct a.sid, a.serial#,
a.machine, a.terminal, a.program,
b.address, b.piece, b.sql_text
FROM v$session a, v$sqltext b
WHERE a.sql_address = b.address
order by a.sid, a.serial#,b.address,b.piece;

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,