반응형


MariaDB JSON 형식 데이터 사용 : MariaDB 10.2 부터 가능

참고 사이트

https://mariadb.com/kb/en/library/json-functions/
https://mariadb.com/resources/blog/json-with-mariadb-10-2/
https://bstar36.tistory.com/359


1. 버전 확인
    MariaDB [(test)]> select @@version;
    +-----------------+
    | @@version       |
    +-----------------+
    | 10.3.17-MariaDB |
    +-----------------+
    1 row in set (0.000 sec)

2. JSON 데이터 타입 지원(내부적으로 LongTEXT로 저장)    
    MariaDB [test]> create table json_test (id int, data json);
    Query OK, 0 rows affected (0.015 sec)

    MariaDB [test]> show create table json_test;
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table     | Create Table                                                                                                                                                                                  |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | json_test | CREATE TABLE `json_test` (
      `id` int(11) DEFAULT NULL,
      `data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.000 sec)


3. JSON 데이터 조작
   A. json_object 함수를 이용하여 key,value 형식으로 Insert
    MariaDB [test]> insert into json_test values (1 , json_object('Name' , 'Kil-Dong, Hong' , 'Sex' , 'M' , 'Phone' , '010-1234-5678')) ;
    Query OK, 1 row affected (0.003 sec)
    
    MariaDB [test]> commit;
    Query OK, 0 rows affected (0.000 sec)
    
    MariaDB [test]> select * from json_test ;
    +------+------------------------------------------------------------------+
    | id   | data                                                             |
    +------+------------------------------------------------------------------+
    |    1 | {"Name": "Kil-Dong, Hong", "Sex": "M", "Phone": "010-1234-5678"} |
    +------+------------------------------------------------------------------+
    1 row in set (0.000 sec)

   B. 특정 key 값만 조회 하고자 할때 json_value 함수를 사용 
   
    MariaDB [test]> select id , json_value(data,'$.Name') As Name , json_value(data,'$.Phone') as Phone from json_test ;
    +------+----------------+---------------+
    | id   | Name           | Phone         |
    +------+----------------+---------------+
    |    1 | Kil-Dong, Hong | 010-1234-5678 |
    +------+----------------+---------------+
    1 row in set (0.001 sec)
    
    C. 특정 하나 Key 값을 update 하고자 할때,  json_replace 함수를 사용
    
    ※ 단, 이름은 중복날 수 있으니 Unique 값으로 비교하는 것을 추천 (사용방법 안내)
    MariaDB [test]> update json_test set data = json_replace(data,'$.Phone','010-2345-6789') where json_value(data,'$.Name') = 'Kil-Dong, Hong';
    Query OK, 1 row affected (0.002 sec)
    Rows matched: 1  Changed: 1  Warnings: 0


    MariaDB [test]> select id , json_value(data,'$.Name') As Name , json_value(data,'$.Phone') as Phone from json_test ;
    +------+----------------+---------------+
    | id   | Name           | Phone         |
    +------+----------------+---------------+
    |    1 | Kil-Dong, Hong | 010-2345-6789 |
    +------+----------------+---------------+
    1 row in set (0.000 sec)
    
    
    Object 값 자체로 추출("" 형태)
    MariaDB [test]> SELECT JSON_EXTRACT(data, '$.Name') from json_test;
    +------------------------------+
    | JSON_EXTRACT(data, '$.Name') |
    +------------------------------+
    | "Su, Peng"                   |
    | "Dori Go"                    |
    | "DaHan, Wi "                 |
    | NULL                         |
    | NULL                         |
    +------------------------------+
    5 rows in set (0.000 sec)
    
    
    MariaDB [test]> SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.Name')) from json_test;
    +--------------------------------------------+
    | JSON_UNQUOTE(JSON_EXTRACT(data, '$.Name')) |
    +--------------------------------------------+
    | Su, Peng                                   |
    | Dori Go                                    |
    | DaHan, Wi                                  |
    | NULL                                       |
    | NULL                                       |
    +--------------------------------------------+
    5 rows in set (0.000 sec)


    
    D. 하나 이상의 Key 값을 변경할 때는 json_set 함수 사용

    MariaDB [test]> update json_test set data = json_set(data,'$.Phone','010-3456-7890', '$.Name','Su, Peng') where id = 1 ;
    Query OK, 1 row affected (0.001 sec)
    Rows matched: 1  Changed: 1  Warnings: 0

    MariaDB [test]> select id , json_value(data,'$.Name') As Name , json_value(data,'$.Phone') as Phone from json_test ;
    +------+----------+---------------+
    | id   | Name     | Phone         |
    +------+----------+---------------+
    |    1 | Su, Peng | 010-3456-7890 |
    +------+----------+---------------+
    1 row in set (0.000 sec)

 
    E. Json 형태가 추가되어도 입력이 가능
    insert into json_test values (2 , json_object('Name' , 'Dori Go' , 'Sex' , 'F' , 'Phone' , '02-123-4567' , 'Birth', '2000-01-01')) ; 
    
    MariaDB [test]> insert into json_test values (2 , json_object('Name' , 'Dori Go' , 'Sex' , 'F' , 'Phone' , '02-123-4567' , 'Birth', '2000-01-01')) ;
    Query OK, 1 row affected (0.001 sec)
    
    MariaDB [test]> commit;
    Query OK, 0 rows affected (0.000 sec)
    
    MariaDB [test]> select * from json_test;
    +------+--------------------------------------------------------------------------------+
    | id   | data                                                                           |
    +------+--------------------------------------------------------------------------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                     |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"} |
    +------+--------------------------------------------------------------------------------+
    2 rows in set (0.000 sec)

    F. json 데이터 값의 Like 검색
    
    MariaDB [test]> select count(*) from json_test where json_value(data,'$.Phone') like '02%' ;
    +----------+
    | count(*) |
    +----------+
    |        1 |
    +----------+
    1 row in set (0.000 sec)
     
    G. json 데이터 타입의 key를 가상 컬럼을 생성 후 Index 작업 가능
    
    - 테이블 변경(가상 컬럼 추가)
    MariaDB [test]> alter table json_test add phone varchar(20) as (json_value(data,'$.phone')) ;
    Query OK, 0 rows affected (0.341 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    MariaDB [test]> select * from json_test limit 1 ;
    +------+------------------------------------------------------------+-------+
    | id   | data                                                       | phone |
    +------+------------------------------------------------------------+-------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"} | NULL  |
    +------+------------------------------------------------------------+-------+
    1 row in set (0.000 sec)

    현재 화면에서 데이터가 안나오는 이유는 Key의 Phone은 P가 대문자 생성시에는 소문자로 만들었음
    삭제 후 다시 추가

    MariaDB [test]> alter table json_test drop phone;
    Query OK, 0 rows affected (0.009 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    MariaDB [test]>  select * from json_test limit 1 ;
    +------+------------------------------------------------------------+
    | id   | data                                                       |
    +------+------------------------------------------------------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"} |
    +------+------------------------------------------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> alter table json_test add phone varchar(20) as (json_value(data,'$.Phone')) ;
    Query OK, 0 rows affected (0.012 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    MariaDB [test]>  select * from json_test;
    +------+--------------------------------------------------------------------------------+---------------+
    | id   | data                                                                           | phone         |
    +------+--------------------------------------------------------------------------------+---------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                     | 010-3456-7890 |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"} | 02-123-4567   |
    +------+--------------------------------------------------------------------------------+---------------+
    2 rows in set (0.000 sec)
    
       
    - 인덱스 생성
    key 값을 기준으로 가상 생성된 컬럼에 index를(ix_json_test_01)  추가
    MariaDB [test]> create index ix_json_test_01 on json_test(phone) ;
    Query OK, 0 rows affected (0.021 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    explain 을 통해 plan을 조회합니다.
    MariaDB [test]> explain select count(*) from json_test where Phone like '02%' ;
    +------+-------------+-----------+-------+-----------------+-----------------+---------+------+------+--------------------------+
    | id   | select_type | table     | type  | possible_keys   | key             | key_len | ref  | rows | Extra                    |
    +------+-------------+-----------+-------+-----------------+-----------------+---------+------+------+--------------------------+
    |    1 | SIMPLE      | json_test | index | ix_json_test_01 | ix_json_test_01 | 63      | NULL |    2 | Using where; Using index |
    +------+-------------+-----------+-------+-----------------+-----------------+---------+------+------+--------------------------+
    1 row in set (0.000 sec)

    H. Json Object를 사용하지 않은 Insert
    MariaDB [test]> insert into json_test(id, data) values (3, '{"Name": "DaHan, Wi ", "Sex": "M", "Phone": "010-9876-5432", "Birth": "1999-12-31"}');
    Query OK, 1 row affected (0.003 sec)

    MariaDB [test]> select * from json_test;
    +------+-------------------------------------------------------------------------------------+---------------+
    | id   | data                                                                                | phone         |
    +------+-------------------------------------------------------------------------------------+---------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                          | 010-3456-7890 |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"}      | 02-123-4567   |
    |    3 | {"Name": "DaHan, Wi ", "Sex": "M", "Phone": "010-9876-5432", "Birth": "1999-12-31"} | 010-9876-5432 |
    +------+-------------------------------------------------------------------------------------+---------------+
    3 rows in set (0.000 sec)


4. Json 관련 함수들
   관련 링크 :  https://mariadb.com/kb/en/library/json-functions/
   
   - JSON_Query와 JSON_VALUE 차이
     아래와 같이 임시로 json 변수를 선언하고 json 데이터를 저장합니다.
     
    MariaDB [test]> SET @json='{ "x": [0,1], "y": "[0,1]", "z": "Monty" }';
    Query OK, 0 rows affected (0.001 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$'), JSON_VALUE(@json,'$');
    +--------------------------------------------+-----------------------+
    | JSON_QUERY(@json,'$')                      | JSON_VALUE(@json,'$') |
    +--------------------------------------------+-----------------------+
    | { "x": [0,1], "y": "[0,1]", "z": "Monty" } | NULL                  |
    +--------------------------------------------+-----------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.x'), JSON_VALUE(@json,'$.x');
    +-------------------------+-------------------------+
    | JSON_QUERY(@json,'$.x') | JSON_VALUE(@json,'$.x') |
    +-------------------------+-------------------------+
    | [0,1]                   | NULL                    |
    +-------------------------+-------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.y'), JSON_VALUE(@json,'$.y');
    +-------------------------+-------------------------+
    | JSON_QUERY(@json,'$.y') | JSON_VALUE(@json,'$.y') |
    +-------------------------+-------------------------+
    | NULL                    | [0,1]                   |
    +-------------------------+-------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.z'), JSON_VALUE(@json,'$.z');
    +-------------------------+-------------------------+
    | JSON_QUERY(@json,'$.z') | JSON_VALUE(@json,'$.z') |
    +-------------------------+-------------------------+
    | NULL                    | Monty                   |
    +-------------------------+-------------------------+
    1 row in set (0.000 sec)

    MariaDB [test]> SELECT JSON_QUERY(@json,'$.x[0]'), JSON_VALUE(@json,'$.x[0]');
    +----------------------------+----------------------------+
    | JSON_QUERY(@json,'$.x[0]') | JSON_VALUE(@json,'$.x[0]') |
    +----------------------------+----------------------------+
    | NULL                       | 0                          |
    +----------------------------+----------------------------+
    1 row in set (0.000 sec)

    - JSON_ARRAY 함수
      10.2.3 버전부터 추가됨
      MariaDB [test]> SELECT Json_Array(56, 3.1416, 'My name is "Foo"', NULL);
    +--------------------------------------------------+
    | Json_Array(56, 3.1416, 'My name is "Foo"', NULL) |
    +--------------------------------------------------+
    | [56, 3.1416, "My name is \"Foo\"", null]         |
    +--------------------------------------------------+
    1 row in set (0.000 sec)


    MariaDB [test]> insert into json_test(id, data) values (4, JSON_ARRAY("Name","Ra, Ro ", "Sex", "F", "Phone", "010-1122-3344", "Birth", "1990-06-01"));
    Query OK, 1 row affected (0.003 sec)
 
     
    MariaDB [test]> select * from json_test;
    +------+-------------------------------------------------------------------------------------+---------------+
    | id   | data                                                                                | phone         |
    +------+-------------------------------------------------------------------------------------+---------------+
    |    1 | {"Name": "Su, Peng", "Sex": "M", "Phone": "010-3456-7890"}                          | 010-3456-7890 |
    |    2 | {"Name": "Dori Go", "Sex": "F", "Phone": "02-123-4567", "Birth": "2000-01-01"}      | 02-123-4567   |
    |    3 | {"Name": "DaHan, Wi ", "Sex": "M", "Phone": "010-9876-5432", "Birth": "1999-12-31"} | 010-9876-5432 |
    |    4 | ["Name", "Ra, Ro ", "Sex", "F", "Phone", "010-1122-3344", "Birth", "1990-06-01"]    | NULL          |
    +------+-------------------------------------------------------------------------------------+---------------+
    4 rows in set (0.000 sec)

    위의 id 4번 값은 아래에 보듯이 Type이 맞지 않기 때문에 phone값이 정상 인식 되지 않았음.
    
    MariaDB [test]> select json_type(data) from json_test;
    +-----------------+
    | json_type(data) |
    +-----------------+
    | OBJECT          |
    | OBJECT          |
    | OBJECT          |
    | ARRAY           |
    +-----------------+
    4 rows in set (0.001 sec)

    - 함수들 간략한 설명
    2
    JSON_QUERY와 JSON_VALUE의 차이점
        JSON_QUERY와 JSON_VALUE의 예제와 비교합니다.
    JSON_ARRAY
        나열된 값이 포함 된 JSON 배열을 반환합니다.
    JSON_ARRAY_APPEND
        JSON 문서 내에서 주어진 배열의 끝에 값을 추가합니다.
    JSON_ARRAY_INSERT
        JSON 문서에 값을 삽입합니다.
    JSON_COMPACT
        불필요한 모든 공간을 제거하여 json 문서가 가능한 한 짧습니다.
    JSON_CONTAINS
        지정된 JSON 문서 또는 문서 내의 지정된 경로에서 값을 찾을 수 있는지 여부
    JSON_CONTAINS_PATH
        지정된 JSON 문서에 지정된 경로의 데이터가 있는지 여부를 나타냅니다.
    JSON_DEPTH
        JSON 문서의 최대 깊이.
    JSON_DETAILED
        중첩 구조를 강조하는 가장 이해하기 쉬운 방식으로 JSON을 나타냅니다.
    JSON_EXISTS
        지정된 데이터에 지정된 JSON 값이 있는지 확인합니다. 
    JSON_EXTRACT
        JSON 문서에서 데이터를 추출합니다.
    JSON_INSERT
        JSON 문서에 데이터를 삽입합니다.
    JSON_KEYS
        JSON 객체의 최상위 값에서 키를 반환하거나 경로에서 최상위 키를 반환합니다.
        MariaDB [test]> select id, json_keys(data) from json_test;
        +------+-----------------------------------+
        | id   | json_keys(data)                   |
        +------+-----------------------------------+
        |    1 | ["Name", "Sex", "Phone"]          |
        |    2 | ["Name", "Sex", "Phone", "Birth"] |
        |    3 | ["Name", "Sex", "Phone", "Birth"] |
        |    4 | NULL                              |
        |    5 | NULL                              |
        +------+-----------------------------------+
        5 rows in set (0.000 sec)

    JSON_LENGTH
        JSON 문서의 길이 또는 문서 내 값의 길이를 반환합니다.
    JSON_LOOSE
        더 읽기 쉽게 보이도록 JSON 문서에 공백을 추가합니다.
    JSON_MERGE
        주어진 JSON 문서를 병합합니다.
    JSON_MERGE_PATCH
        주어진 JSON 문서의 RFC 7396 호환 병합
    JSON_MERGE_PRESERVE
        JSON_MERGE의 동의어
    JSON_OBJECT
        주어진 키 / 값 쌍을 포함하는 JSON 객체를 반환합니다. 
    JSON_QUERY
        JSON 문서가 주어지면 경로로 지정된 객체 또는 배열을 반환합니다.
    JSON_QUOTE
        문자열을 JSON 값으로 인용합니다.
    JSON_REMOVE
        JSON 문서에서 데이터를 제거합니다.
    JSON_REPLACE
        JSON 문서에서 기존 값을 바꿉니다.
    JSON_SEARCH
        JSON 문서 내에서 지정된 문자열의 경로를 반환합니다.
    JSON_SET
        JSON 문서에 데이터를 업데이트하거나 삽입합니다.
    JSON_TYPE
        JSON 값의 유형을 반환합니다.
    JSON_UNQUOTE
        JSON 값을 인용 해제하여 문자열을 반환합니다. 
    JSON_VALID
        값이 유효한 JSON 문서인지 여부 
    JSON_VALUE
        JSON 문서가 주어지면 지정된 스칼라를 반환합니다.
     

반응형

'Database > MYSQL' 카테고리의 다른 글

MariaDB connect 설치  (0) 2019.11.07
MariaDB 테이블 백업 및 복구  (0) 2019.11.01
MariaDB 우편번호 Import 하기  (0) 2019.11.01
MariaDB SHA2 512 방식으로 암호화 예제  (0) 2019.10.25
Mysql & MariaDB 튜닝 쉘  (0) 2019.08.14
반응형


FTK Imager 이슈


스마트폰 속 개인정보, 삭제해도 쉽게 복원된다 : http://economy.hankooki.com/lpage/it/201407/e20140710145634117700.htm

AccessData의 Forensic 이미징 도구 : FTK Imager 3.0 : http://solatech.tistory.com/208


위 블로그에 자세한 사항을 찾고하면 되겠다 ^^(포렌식 관련)


난 그중 위의 파일 복구 관련하여 한번 살펴보았다... 속도도 빠르고 검색 능력도 뛰어남....


다운로드 : http://www.accessdata.com/support/product-downloads

https://accessdata.com/product-download

2019.03.27 기준 : 4.2.1 버전이 최신 버전이며 이메일로 다운로드 주소가 보내집니다.



3.1.1 버전을 다운로드 받아 실행함 (일반적인 설치과정이라 별 다를게 없음...)


파일 복구 간단한 사용법...


설치 -> FTK Imager 실행 


1. 특정 드라이브 연결

   - File -> Add Evidence Item... 선택 -> Physical Driver (이동식 USB 연결) -> 60 여 기가의 usb 연결 선택 -> 마침






2. 이동식 USB 연결된 파일의 목록이 좌측에 뜨고

    지워진 (X 표시가 뜬) 파일이나 폴더를 선택하여 마우스 우클릭시 Export Files... 선택하여 복원하면 끝






















 









반응형
반응형



소개글 : http://web-dev.tistory.com/562


위의 글은 아크로 에디터를 다운로드 받는 등 간단한 소개 내역이다.


사실 


울트라 에디터를 사용했던 주된 이유는 


대용량 한글 텍스트 파일(1GB 이상)을 부담없이 열어주며,


정규식 표현으로 특정 단어 + 다음줄 변환이 가능했기 때문이다.


그동안 아크로 에디터에서는 안되는 줄 알았는데,...


제 무지였음을 깨닿고 내용을 남깁니다.



-> 대용량 텍스트 연계 파일의 경우


DxxxxDxxxDxxx 등과 같이 특정 단어로 시작하는 경우가 많다.


그럴 경우


1. 아크로에디트 -> 찾기 -> 바꾸기 실행

    



2. 아래는 바꾼 후의 사진

    - 멋지지 않은가?

      실제 사례로... xml 태그 같은 경우

      찾는 문자열 : ><

      바꿀 문자열 : >\n< 

     정규 표현식 사용 체크, 범위 전체 체크 하면

     깔끔한 형태로 보여진다.


3. 기타 팁

    편집 -> 모두 선택 (전체가 블록 지정된 상태) -> 도구 -> 빈 줄 자동 삭제

    즉 필요없이 엔터가 많은 파일에서는 위의 설정을 선택하면 모든 빈줄이 사라진다 !



   


반응형
반응형
패스워드 복호화... 아놔.. 이런방법이 있었는데 -_-

■ 개인키 패스워드 변경,삭제 및 복구 방법(openssl)
openssl을 이용하여 개인키의 비밀번호를 변경할 수 있습니다.

1. 키 파일 패스워드 변경하기(openssl이 설치되어 있는 디렉토리에서 설정)
$ openssl rsa -des3 -in key.pem -out newkey.pem
Pass-Phrase를 물어보면…
처음에는 기존 패스워드 입력, 두 번째는 새로운 패스워드 입력.

2. 키 파일 패스워드 삭제하기(openssl이 설치되어 있는 디렉토리에서 설정)
$ openssl rsa -in key.pem -out newkey.pem

3. 키 파일 삭제한 패스워드 복구하기(openssl이 설치되어 있는 디렉토리에서 설정)
$ openssl rsa -in key.pem des3 -out newkey.pem
반응형

'Private' 카테고리의 다른 글

아놔 가습기  (3) 2011.11.22
2012 피셔 프라이스 뉴 러닝홈  (0) 2011.11.16
존 더 리퍼 john-mmx  (1) 2011.09.28
ssl crack  (0) 2011.09.27
Aircrack-ng is an 802.11 WEP and WPA/WPA2-PSK key cracking program.  (1) 2011.09.09
반응형

* 참고 : TCO! stream 이란?
서버에서 클라이언트를 감시하는 원격관리 프로그램임.

 

- 제품종류 : 자산관리 / 제조업체 : MediaLand
- TCO! Stream : 미디어랜드에서 공급하는 TCO! Stream은 원격제어 소프트웨어라기 보다는 복합적인 성격을 지닌 소프트웨어다 이 소프트웨어는 TCO! Remocon이라고 불리우는 기능을 통해 상대 PC를 원격 제어할 수 있다. 클라이언트 PC를 시물레이션하여 모든 기능 제어가 가능하며, 한화면에서 다수의 원격지 PC를 제어 가능하다. 원격지 PC 연결은 기본적으로 TCP/IP 기반에서 동작되며, RAS를 통한 전화접속 사용자(PPP)를 지원한다...
___________________________

 

2004-09-14 21:51:10 / 백천기
TCO! stream Client Agent 라는 감시 프로그램을 지우고 싶은데 지워지지가 않습니다. 설령 지운다해도 Server에서 원격으로 다시 설치하더군요..

 
출처 : http://blog.paran.com/blog/detail/postBoard.kth?pmcId=birdfree&blogDataId=28250591

반응형
반응형

가끔 지인으로부터 "디스크 or C디스크가 너무 작아요 D는 큰데... " 라는 식의 컴퓨터 관련 문의를 받곤합니다.

원인은 컴퓨터를 처음 설치할 때부터 사용공간에 맞춰 파티션을 분리해야 하는데

터무니 없니 작은 파티션으로 구성하여 발생하는 문제입니다...

(물리적 하드디스크 : 여러개의 파티션으로 구성될 수 있으며 각 파티션은 논리적 디스크로 볼수 있습니다. 
  ※ 즉, 논리적 디스크는 C, D, E 처럼 탐색기에서 보듯이 디스크로 할당 가능합니다...)

이런 문제를 해결 할 때 주로 사용하는 EASEUS 프로그램을 소개 하고자 합니다.

물론 예전 부터 유명한 Partition Magic 이라는 프로그램이 있으나... 유료이므로 지나가도록 하겠습니다.

제품 홈페이지 : http://www.easeus.com/product.htm#Title2 
                      Partition Manager 페이지에 자세히 나와 있습니다.


 제품명  유/무료 지원OS 
 EASEUS Partition Master Home Edition 개인 사용자만 무료 Windows 2000/XP/Vista/7 
 EASEUS Partition Master Professional Edition $ 39.95 유료
중소기업, 학교 연구실, 정부기관 등에서 사용가능함.
Windows 2000/XP/Vista/7 32 bit and 64 bit 
 EASEUS Partition Master Server Edition $159.00(현재 할인중) 유료  Windows Server 2000/2003/2008 (32 and 64 bit) etc
 EASEUS Partition Master Unlimited Edition $399.00의 유료  한 회사내의 무제한으로 사용 가능.
(기업용)
 EASEUS Partition Master Technician Edition $699.00의 유료  여러 고객사의 기술 서비스를 제공 가능.

위 버젼들중 개인 사용자 무료버젼인 EASEUS Partition Master Home Edition의 설치 및 사용방법에 대해 설명합니다.

제품 다운로드 주소 : http://www.easeus.com/download.htm

중간쯤 내려가면 아래와 같이 Free 글씨로 쓰여진 Home Edition 버젼을 받은 받을 수 있습니다.



EASEUS Partition Master Home Edition 설치 편



1. 바탕화면에 다운로드 받습니다. (압축되어 파일이 다운로드됨.)

2. 압축을 푸는 프로그램(전 알집을 사용...)을 이용하여 압축 해제 합니다.

3. 압축을 푼 파일명은 아래와 같이 EPMSetup으로 풀리며, 두번 클릭합니다.


4. 설치를 시작합니다. (Next 클릭)

5. 사용동의를 하고 Next를 클릭합니다.

6. Professional Partition Solution의 Home Edition보다 추가기능을 나열하고 Free Download 버튼이 있으나... 기본기능이 아니므로 설치 하지는 않습니다. Next를 누릅니다.

7. 설치될 경로를 나타내며 잘 알지 못하면 Next를 누릅니다(기본 폴더에 설치되도록 합니다)
    C:\Program Files\EASEUS\EASEUS Partition Master 6.1.1 Home Edition (기본 설치 경로)

8. 윈도우즈 시작메뉴에 생성될 이름을 지정가능하나 별도로 지정할 필요가 없어 Next를 누릅니다.

9. 설치 후 EASEUS Partition Master Home Edition의 아이콘 추가 및 시작시 업데이트 체크를 설정하는 부분입니다.
   (Next를 누릅니다)

10. EASEUS의 뉴스레터를 통한 서비스 및 제품 정보등을  보내준다고 합니다.
     선택적이므로... NEXT를 합니다.

11. 자... 위의 설치준비과정을 통한 최종 선택한 정보들을 나열하며 설치가 준비되었음을 알리는 화면
     next를 눌러 파일 설치를 시작합니다

12.설치되고 있는 화면

13. 모든 파일 설치가 완료된 화면입니다.
     Finish를 눌러 설치화면을 닫습니다.




EASEUS Partition Master Home Edition 실행편


1. 바탕화면에 생성된 아래의 아이콘을 두번 눌러 실행합니다


2. 처음 실행한 화면입니다.
    - 현재 이 컴퓨터에는 하나의 디스크(Disk1만 표기)의 하나의 논리적 파티션(C)가 40GB를 모두 쓰고 있으며
       Used(사용용량) : 4.51 GB
       UnUsed(미사용공간) : 35.48GB
       디스크 파일 시스템 : NTFS 를 사용하고 있습니다. (좌측 하단부의 파일시스템별 색중 NTFS는 보라색이며 C드라이브는 보라색으로 표기됨.
 

3. 여기서 C의 파티션 공간을 조작해 보겠습니다.

   C 드라이브 위에서 마우스 우클릭 -> Resize/Movie 선택  or
                                                  -> 상단 메뉴 Partitions -> Resize/Movie 선택 

4. 사이즈 조정 화면
   4.1 C 파티션 크기 조절 방법 두가지
   - 제일 상단에 Size and Position은 현재 차지 하고 있는 공간을 나타내며 제일 앞이나 제일 끝으로 가면 마우스 커서가
     <-|-> 모양으로 바뀔 때 드래그를 통해 사용가능함.(세밀한 조정은 힘듬)
   - Unallocated Space Before : 현재 파티션 앞쪽으로 빈공간을 설정할 때 사용함
      *** C와 D 논리적 디스크가 존재시 C가 40GB / D가 320 GB라고 할때 D 파티션의 앞쪽으로 빈공간을 만들어야 C파시션에 추가가 가능합니다 !!!!
   - Partition Size : 현재 파티션의 크기 설정
   - Unallocated Space After : 현재 파티션 뒷쪽으로 빈공간을 설정할 때 사용함
      *** C와 D 논리적 디스크가 존재시 C가 320GB / D가 40 GB라고 할때 C 파티션의 뒷쪽으로 빈공간을 만들어야 D파티션에 추가가 가능합니다 !!!!
    
   * Before 와 After 설정시에는
      변경전 과 변경후의 전체 크기는 동일함 (아래 공식 참조) 즉, Before 스페이스를 준만큼 현재 Partition Size or After 사이즈를 줄여 전체크기를 동일하게 해야만 합니다.
      전체크기 = Unallocated Space Before + Partition Size + Unallocated Space After
   Tip. 쉬운방법 현재 Partition Size의 크기를 줄인다음 위쪽 Size and Position의 보라색 네모를 드래그 하면 Before 와 After 사이에 지정한 크기만큼 위치할 수 있습니다.


5. Apply 또는 상단메뉴 -> General Apply Changes를 선택합니다



6. 지금 바로 적용하는가를 묻는 화면 Yes를 누르면 바로 5번 항목에서 설정한 내용이 적용되며
    1-2번 정도의 재부팅 후 반영됩니다.




이것으로 EASEUS Partition Master Home Edition에 대한 설명을 마칩니다.
반응형

'UTILITY' 카테고리의 다른 글

JEUS 5 Encoding / characterset  (0) 2010.11.25
윈도우 프로그램의 사용 포트와 프로그램 확인을 하는 프로그램  (0) 2010.09.13
teamviewer 5  (1) 2010.07.20
무료 레지스트리 정리 프로그램  (0) 2010.07.20
AWK  (1) 2010.07.19
반응형

반응형
반응형

반응형
반응형

새로 생성한 데이터베이스에 여러명의 개발자가 달라붙어서 작업을 하다보니...

 

어느새 이상한 찌꺼기로 보이는 것들이 생기곤 한다.

 

sql> select * from tab;

...

...

BIN$+JhRwRSHQRm8CPHbIPcAhg==$0
BIN$+dyK/iSeSm2xC63JjCCnWQ==$0
BIN$+iZrUVW+QK6GJf6AU54nDQ==$0
...

 

이런 정상적이지 않은 놈들이 보인다.

 

토드 스키마브라우져에서 뒤져보니

 

My Schema > Constrants 에 들어있는 놈들이다.

 

자세히 보니 이미 드랍된 테이블의 인덱스들 인듯

 

drop를 시도하면...

 

ORA-38301: 휴지통에 있는 객체에 대해 DDL/DML을 수행할 수 없음

 

이라고 나온다... 웬 휴지통 -.,ㅡa 이거 뭥미...

 

결국 ORA-38301로 검색을 해보니

 

오라클 10g에서는 휴지통(recyclebin) 이라는 것이 존재하는데

 

drop 명령으로 삭제한 객체들이 바로 삭제되지 않고 여기에 담겨있다고 한다.

 

휴지통에 들어있는 객체들은 아래의 상황 전까지 휴지통에 보관된다고 한다.

 

- purse 명령으로 영구히 삭제

- undrop명령으로 drop객체 복구

- 테이블스페이스 (휴지통)공간이 부족할때.

- 테이블스페이스가 extend될때

 

 

휴지통에 들어있는 객체들 보기

 - user_recyclebin

 - dba_recyclebin

 

휴지통 비우기

purge recyclebin;                       사용자의 휴지통 비우기
purge dba_recyclebin;                   휴지통내의 모든 놈들 비우기
purge tablespace users;                 users테이블스페이스의 휴지통 비우기
*purge table "휴지통내의 이름"        휴지통의 하나의 객체만 제거시


휴지통의 객체 복구
flashback table 휴지통내의 이름 to before drop;

휴지통에 넣지 않고 drop
drop table 테이블명 purge;

출처 : http://cafe.daum.net/oddtip/FbCl/187?docid=1CBe5|FbCl|187|20080808184442&q=ORA-38301&srchid=CCB1CBe5|FbCl|187|20080808184442

반응형
반응형

출처:http://blog.naver.com/rojinsong?Redirect=Log&logNo=50004423503

$ORACLE_HOME 디렉토리에 있는 설치화일을 전부삭제
/etc밑에 orainst.loc, oratab 삭제
/usr/local/bin/oraenv 파일삭제
/tmp디렉토리에서 관련파일삭제
elete the /etc/oratab file. If using 9iAS delete the /etc/emtab file also.
# rm /etc/oratab /etc/emtab
끝 재설치 하면됩니다.

반응형

+ Recent posts