○ Active Directory Monitoring
    왜 성능분석이 필요한가?
        문제 해결의 자료 제공
        AD관리자의 입장에서 Query의 응답속도가 느리다던지
        사용자 인증에 지연이 발생한 경우 Resource에 대한 병목현상등 판단
    DC Sizing
        New Server Deployment
        새로운 DC를 도입할 경우 보다 정확한 DC의 Sizing이 필요
    Server Consolidation
        기존의 서버 Role을 통합할 경우 필요한 원하는 Spec의 Response를 가져갈 수 있는지 판단
    Application 개발(개발자 입장)
        AD의 기능
            사용자 인증
            Directory Service 제공
            기업내의 Identity 정보 제공
            LDAP Query의 응답속도 튜닝

○ 성능분석 도구들
도구                                    데이터
Perfmon                              성능 카운터
Netmon                               네트워크 패킷
Windows Server 2003 Performance Advisor
                                         성능카운터 & Event Tracing(MS Windows에서 제공하는 Event Tracking Architecture, OS
                                         차원에서 제공, Kernel Level Function Level까지 제공)
                                         (Data 수집, 분석해서 Report를 제시함)
Event log                            이벤트(오류발생시 오류 표시)

○ Windows Server 2003 Performance Advisor(버전 2.0)
    Data 수집/성능분석/Report 기능 제공
        - Active Directory
        - Internet Information Server(IIS)
        - Print Server
        - DNS
        등..
    System Requirements
        - Windows Server 2003 Only
        - .Net 1.1 Framework
        - SQL Server 2000 또는 MSDE
           (반드시 필요하지는 않지만 Trending을 하고 싶다면 필요함, 성능추이)
    Download
        http://www.microsoft.com/downloads/details.aspx?FamilyID=09115420-8c9d-46b9-a9a5-9bffcd237da2&DisplayLang=en

○ Computer Role
    Data
        성능 데이터를 수집
        Report 나 Both Computer Role을 맡은 시스템에 수집한 데이터 전달
    Report
        데이터를 분석하여 리포트 생성
        Warning Rule에 따라 리포트에 상태 표시
        (경고 메시지 규칙)
    Both
        한 시스템에서 Data와 Report 역할을 동시에 수행
        데이터를 수집한 후 바로 리포트 생성, DC의 경우엔 Both로 설정하는 것을
        권장하지 않음(각 DC는 Data로 설정, Report Computer Role을 다른 시스템에 설정)
    Data와 Report 분리의 이유
        개별 DC에 Performance Advisor를 설치한다면 부하가 발생하므로
        Data로 Computer Role을 지정하고 부하가 덜 걸리는 2003 System에
        Report Computer Role을 설정하여 다른 시스템의 Data를 가져와
        관련 Report를 생성하는 역할을 분리

○ Data Collector
    성능 카운터
        일정간격(3초)마다 CPU, Disk, Memory와 같은 지정된 성능 카운터 데이터 수집
    레지스트리
        성능과 관련된 레지스트리 설정 값 수집
    Event Tracing for Windows
        User/Kernel mode provider가 제공하는 다음과 같은 데이터 수집
            State Changes
            Begin/End of significant operations
            Resource creation/deletion
            other events related to performance or reliability
            Debug Event

○ Data Collector Group
    SPA(Server Performance Advisor)에 의해 수집할 데이터와 리포트에 대해 정의한 Template
    SPA가 설치될 때 자동으로 서버에 맞는 Data Collector Group이 설정됨
    현재 9개의 Data Collector Group Template 제공
        - System Overview
            기본적 CPU, Memory, HDD, Network
        - Active Directory
        - ADAM
        - IIS
        - Print Spooler
        - Performance Counters
        - File
        - DNS
        - DNS Extended
           DNS Debugging 기능 제공

○ Warning Rules
    수집된 데이터들의 임계값 정의
    Report를 생성할 때 각 데이터별로 정의된 Warning Rule의 임계값 내에서 동작중인지 점검
    임계값을 넘으면 리포트에 관련 Advice 출력
    시스템 성능에 따라 임계값 수정 가능

    - System Health Index
        CPU
            0 < CPU활용률(%) <= 20 : Idle
          20 < CPU활용률(%) < 80 : Normal
          80 <= CPU활용률(%) : Busy
        Network
                Network활용률(%) <= 15 : Low Traffic
          15 < Network활용률(%) < 60 : Normal Traffic
          60 <= Network활용률(%) : High Traffic
        Memory
            0<Memory활용률(%) <=15 : Idle
          15 < Memory활용률(%) < 75 : Normal
          75 <= Memory 활용률(%) : High
        Disk I/O
          Disk I/O Rate <= 100 : Idle
          100 < Disk I/O Rate < 500 : Normal
          500 <= Disk I/O Rate : High

○ Warning Rule 변경
    Server Performance Advisior -> Edit -> Rule
        IDLE, Normal, Busy등의 값을 적절히 수정
   
○ 일반적인 AD 성능 이슈
    - 높은 CPU 사용률(LSASS 100%)
        현상
            DC의 CPU 사용률이 지속적으로 100% 유지
        일반적인 원인
            Filter 없는 전체 검색
            적절한 OU Baseline 지정 필요
            연속적인 인증 재시도
            Client로부터 인증 Request가 계속 날아오면
            인증실패의 빈도가 늘어나면서 CPU 사용률이 100%를 차지함
            대부분의 경우 인증 재시도 요구는 Application에서 오는 경우가
            많음(예: 비밀번호 변경된 경우)
    - Search Timeout
        LDAP Query의 Response가 지정된 시간에 응답이 없는 경우
        현상
            Directory 검색 응답 시간이 매우 늦거나 Timeout으로 인해 Application 실패
        일반적인 원인
            Filter 없는 전체 검색
            DC의 Resource 부족(CPU, 메모리, 디스크)
 
○ DS Search 성능 이슈
    Windows Server Performance Advisor 이용
        HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics의 Field Engineering값을 5로 설정
        => AD에서 수행한 LDAP Query문이 Event Log에 남는다.
 
○ Active Directory Troubleshooting
    http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/activedirectory/
           maintain/opsguide/part1/adogd07.mspx

반응형
Posted by She쥐포s

○ Script를 이용한 Active Directory 관리
    Active Directory Object Binding, 생성, 수정, 삭제

○ Script를 사용하는 이유
    - 편리성
        계정 관리에 대한 일관성 유지
    - ADUC를 이용해 계정을 생성하기 위해서는
        사용자의 Type등, 설명등을 입력하여 생성
        관리자의 실수를 최소화
    - 대량 작업에 대한 일괄처리 지원
        Script와 Excel 연계 가능

○ ADSI(Active Directory Service Interfaces)
    AD를 액세스할 수 있도록 다양한 COM Interface(Provider) 제공
        Active Directory(LDAP Provider)
        Exchange Server(LDAP Provider)
        Local user and group accounts(WinNT Provider)
        Windows NT 4.0 domain accounts(WinNT Provider)
        Internet Information Server(IIS Provider)

○ ADSI Scripting 비교
    - Active Directory
        Set objUser=GetObject
            ("LDAP://cn=Gildon.Hong,ou=연구소,dc=nwtraders,dc=com")
        Wscript.Echo "First Name: " & objUser.GivenName
        Wscript.Echo "Last Name: " & objUser.sn

    - Internet Information Server
        Set objWebServer=GetObject("IIS://atl-ws-01/W3SVC")
        Wscript.Echo "Log Type: " & objWebServer.LogType
        Wscript.Echo "Server Comments: " & _objWebServer.ServerComment

○ ADSI Scripting Template
    Connect to an Object(=Binding)
    Perform Some Task
        - Object 생성
        - Object 수정
        - Object 삭제
    Save you Changes(SetInfo method 호출)

○ Active Directory Object Binding
    실생활에서 원하는 상대에게 전화 걸기
        Step1 : 상대방의 전화번호 획득
        Step2 : 전화걸기
    Object Binding 순서
        Step1 : Binding하고자 하는 Object의 ADsPath 획득(Provider이름+Distinguished Name)
        Step2 : Object에 Binding(GetObject)

○ Active Directory Naming
    도메인
        dc=nwtraders,dc=msft
    OU
        ou=연구소
    Object
        cn=Gildong.Hong
    Distinguished Name
        cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=msft
    Domain>OU>Object
        cn=xxx.xxx,ou=xx,dc=xxx,dc=xxx
    특정 개체를 지정하기 위한 체계가 있음

○ ADsPath(=Distinguished Name+Provider명)
    LDAP://(Distinguished Name)
        LDAP://cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=msft
    Parent ADsPath
        LDAP://ou=연구소,dc=nwtraders,dc=msft

○ Object Binding Script
    OU안에 특정 개체 Binding
        Set objUser=GetObject
            ("LDAP://cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=com")
    OU에 Binding
        Set objOU=GetObject("LDAP://ou=연구소,dc=nwtraders,dc=com")
    하위 OU에 Binding
        Set objOU=GetObject
            ("LDAP://ou=핵심기술연구팀,ou=연구소,dc=nwtraders,dc=com")

○ Active Directory Object 생성
    Identity Lifecycle
        - 임직원 입사 : 사용자 계정 생성
        - 조직/직급/직위/직책 생성 : 관련 그룹 계정 생성
    Script를 이용해서 성성하는 주 대상은 사용자 계정임
    생성순서
        - Step 1: Object를 생성하고자 하는 OU에 Binding
        - Step 2: Object 생성(그룹, 사용자 계정, 컴퓨터 계정이 될 수 있음)
        - Step 3: Object Attribute 설정(사용자 계정의 Attribute 설정)
        - Step 4: 설정 저장
    OU에 사용자 계정 생성
        Set objOU=GetObject("LDAP://ou=연구소,dc=nwtraders,dc=msft")
        Set objUser=objOU.Create("User","cn=Cheolwon.Choi")
        objUser.Put "sAMAccountName", "Cheolwon.Choi"
        objUser.Put "GivenName", "Cheolwon"
        objUser.Put "SN", "Choi"
        objUser.SetInfo

○ Excel을 이용한 사용자 계정 생성
    다수의 사용자 계정을 일괄 처리 가능
  
    사용자 계정 생성 순서
        Step 1 : Excel 인스턴스 생성 및 파일 열기
        Step 2 : Excel Data를 이용해 사용자 계정 생성
        Step 3 : Quit를 이용해서 Excel 인스턴스 종료

    Excel을 이용한 사용자 계정 생성 Script
        Set objExcel=CreateObject("Excel.Application")
        Set objWorkbook=objExcel.Workbooks.Open("C:\Temp\HR.xls")
        intRow = 2
        Do Until ObjExcel.Cells(intRow,1).Value=""
            strCN=objExcel.Cells(intRow,2).Value & "." &
            objExcel.Cells(intRow,1).Value
            Set objOU = GetObject("LDAP://ou=" &
            objExcel.Cells(intRow,3).Value & ",dc=nwtraders,dc=msft")
            Set objUser = objOU.Create("User", "cn=" & strCN)
            objUser.Put "sAMAccountName", strCN
            objUser.Put "GivenName", objExcel.Cells(intRow,2).Value
            objUser.Put "SN", objExcel.Cells(intRow,1).Value
            objUser.SetInfo
            intRow=intRow+1
        Loop
        objExcel.Quit

○ Active Directory Object 수정
    Identity Lifecycle
        - 전보 : 사용자 계정이 속한 조직 그룹 변경
        - 승진 발령 : 관련 직책/직급/직위 그룹 변경
        - 휴가/정직 : 사용자 계정 Disable
        - 복귀 : 사용자 계정 Enable
    수정 순서
        - Step 1: 수정하고자 하는 Object에 Binding
        - Step 2: Object Attribute 설정
        - Step 3: 설정 저장
    사용자 계정 상태 변경 Script
        Set objUser=GetObject("LDAP://cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=msft")
        objUser.AccountDisabled=TRUE(복귀시 FALSE)
        objUser.SetInfo(Commit Transaction과 같은 개념)

○ Active Directory Object 삭제
    Identiry Lifecycle
        - 퇴사 : 사용자 계정 삭제
        - 조직 통폐합 및 폐쇄 : 조직 그룹 삭제
    삭제 순서
        - Step 1 : 삭제할 Object를 포함하고 있는 OU에 Binding
        - Step 2 : 다음 두 매개변수를 이용해서 Delete Method 호출
    삭제할 개체 종류
    삭제할 개체 CN
    사용자 계정 삭제 Script
        Set objOU = GetObject("LDAP://ou=연구소,dc=nwtraders,dc=msft")
        objOU.Delete "User", "cn=Cheolwon.Choi"

○ 참고자료
    Microsoft Technet Script Center
        http://www.microsoft.com/technet/scriptcenter/default.mspx
    Active Directory Administration WebCast Series
        http://www.microsoft.com/events/series/adaug.mspx

반응형
Posted by She쥐포s

이 시리즈는 2005년 MS TechNet AD 관리 시리즈를 보며 내용을 정리한 것이다.

○ Domain Controller 구축환경
    Data Center
        - 신뢰할 수 있는 작업자만이 접근할 수 있도록 통제 가능한 Datacenter와
           같은 장소에서 DC 구축 작업을 수행할 것을 권장
        - Datacenter에서 DC를 구축 후, 최종 운영장소(Branch Office)로 이동시킬 것
        - 작업자의 실수를 방지하기 위해 운영체제 설치 및 AD 설치를 자동화할 것 권장
    
    Branch Office
  
○ Windows Server 2003 설치 및 보안설정
    운영체제 설치시의 보안 설정
        - Windows Server 2003 설치 후, 최신 Service Pack 및 Hotfix 설치
            ㅡ 가장 기본
            ㅡ 모든 DC에 대한 동일한 구성을 위해 자동화 방식으로 OS 설치권장
            ㅡ 모든 파티션은 NTFS로 포맷
            ㅡ TCP/IP 프로토콜만 설치
            ㅡ Site간 복제를 위해 SMTP 프로토콜을 쓸 경우가 아니면 SMTP 설치 금지
            ㅡ IIS 설치 금지
            ㅡ OS 설치시 DNS도 설치
        - 강력한 Administrator 암호 설정
            ㅡ Local Administrator 암호 설정
            ㅡ Local Administrator 계정이 DC로 Promotion후 Domain Administrator
                 계정이 되므로 운영체제 설치시에 Local Administrator 계정의 암호로 다음과 같은
                 강력한 암호를 설정할 것을 권장함
                1) 최소 9자 이상
                2) 계정이름, 관리자이름, 회사이름을 포함시키지 말 것
                3) 이전 암호와 유사한 체계를 사용하지 말 것
                4) 처음 7자 안에 하나 이상의 특수 문자를 포함할 것
                5) 대문자, 소문자, 숫자, 특수문자를 모두 포함할 것

        - NTFS 자동 8.3 파일 이름 생성 기능 정지
            ㅡ 바이러스나 공격자에 의해 사용되는 프로그램들은  주로 16bit
                응용프로그램으로 NTFS 파티션의 8.3 파일이름을 사용함
            ㅡ DC에서 16bit 응용프로그램을 실행할 경우는 없기 때문에
                NTFS 자동 8.3 파일이름 생성기능을 정지하여 보안 강화
            ㅡ 설정방법 :    
                Registry
                   HKLM\System\CurrentControlSet\Control\FileSystem
                이름
                   ntfsDisable8dot3NameCreation
                Data Type
                   REG_DWORD
                값
                   0x01
            ㅡ NTFS에서 Long file name 사용가능
            ㅡ 16bit Application을 위해 8.3 file이름 자동 생성기능 정지
                바이러스, hacking 프로그램이 동작하지 않도록 설정 권장

    - Virus-Scanning 소프트웨어 설치
            ㅡ OS 설치후 DC로 Promotion하기 전에 Virus-Scanning SW를 설치하고
                동작하도록 구성
    - 불필요 서비스를 사용 안 함으로 설정
                DC 전용 시스템의 경우 꼭 필요한 Service만 사용할 것 권장
           ㅡ Application Management
               프로그램 추가 제거를 통한 Application 설치 관련 서비스
               임의적 SW 설치 제어
           ㅡ Automatic Updates
           ㅡ Background Intelligent Transfer Service
               자동 업데이트관련(패치) 서비스
               검증된 HotFix만 수작업으로 선택적 설치권장
           ㅡ Computer Browser
               브라우징 서비스, DC가 마스터 브라우저로 동작하여 불필요한 부하 발생시킴, 방지
           ㅡ Distributed Link Tracking Client
               NTFS File Link 관리
           ㅡ Error Reporting Service
               프로그램의 오류시 관련 정보를 MS에 전송
           ㅡ Portable Media Serial Number Service
               Portable Media Player의 Serial Number 검색, 사용할 일이 거의 없음
           ㅡ Print Spooler
               서버를 Printer 서버로 사용할 경우 사용
           ㅡ Remote Access Auto Connection Manager
           ㅡ Remote Access Connection Manager
               RAS와 관련 VPN, 전화접속을 이용하지 않으면 사용안함
          ㅡ Shell Hardware Detection
               Autoplay HW 인식
          ㅡ Special Administrator Console Helper
               명령 프롬프트를 원격에서 접속해서 사용하도록 하는 서비스
          ㅡ Telephony
               Telephony API를 서버에서 사용할 일이 없음
          ㅡ Uninterruptible Power Supply 
               UPS를 사용하지 않는다면 Serial Communication을 사용할 일이 없음
          ㅡ Wireless Configuration
               무선 설정관련된 서비스

○ Active Directory 설치 및  보안 설정
            AD 설치 시 고려할 보안 설정
    - Active Directory 자동 설치
        관리자의 실수를 최소화하기 위해 Unattended 설치 권장
        모든 DC가 동일한 구성을 유지하도록 하기 위해 AD 자동 설치를 권장
    - DCPromo /Answer:[Answer File Path]
    - Active Directory Database, Log, SYSVOL은 모두 System 파티션이 아닌 다른
       물리적 디스크에 저장할 것을 권장
    - Default로 Windows Server 2003 AD에서는 "Windows 2000 또는 Windows Server 2003
       운영체제와만 호환되는 사용 권한" 옵션이 선택되어 인증 받은 사용자만이
       도메인의 정보를 액세스할 수 있음
       Anonymous 사용자가 도메인의 정보를 액세스할 수 없도록 한다.
    - Virus-Scanning SW 설정
        OS 설치후 Virus-Scanning SW 설치
        AD 설치후 AD 관련 데이터베이스 파일과 SYSVOL Folder는 Scanning 금지
        ㅡ NTDS.dit
        ㅡ Edb*.log, Res1.log, Res2.log
        ㅡ Temp.edb, Edb.chk
       이상은 AD DB와 Transaction log file
        ㅡ SYSVOL 하부 폴더와 파일
       그룹정책에 관련된 정보를 저장
       DC가 운영중에는 항상 오픈되어 있음
       일부 백신 프로그램은 파일을 스캔 후 임의 정보를 주입하는 경우도 있어
       파일이 깨진 것으로 인식하는 경우가 있음
    - Virus-Scanning에서 제외되는 파일들은 모두 데이터 파일들이기 때문에 바이러스에
      대한 취약점이 발생하는 것은 아님
    - 그룹 보안 설정
       DC의 보안강화를 위해 도메인 정책의 계정잠금 정책 설정
        ㅡ 계정 잠금 기간 : 0(관리자가 수작업으로 수정하기 전엔 사용할 수 없음)
        ㅡ 계정 잠금 임계값 : 20(연속 20번 틀리면 계정 잠금)(적절한 횟수 지정)
        ㅡ 다음 시간 후 계정 잠금 수를 원래대로 설정 : 30(분)
      도메인컨트롤러 사용자 권한 할당 정책
        ㅡ 로컬로그온 허용
            Administrators
            Backup Operators
            Server Operators
            다음의 그룹 제거
            Account Operators
            Print Operators
        ㅡ 시스템 종료
            Administrators
            Backup Operators
            Server Operators
            다음의 그룹 제거
            Print Operators
    도메인 컨트롤러 보안 옵션 정책
           감사: 글로벌 시스템 개체에 대한 액세스 감사  : 사용안함
           감사: 백업 및 복원 권한 사용을 감사   : 사용안함
                불필요한 보안 로그를 방지
           감사: 보안 감사를 로그할 수 없는 경우 즉시 시스템 종료  : 사용안함
                보안로그가 Full인 경우 시스템 종료하게 됨
           장치: 로그온 할 필요없이 도킹 해제 허용   : 사용안함  
           장치: 로컬로 로그온 한 사용자만이 플로피 드라이브에 액세스 : 사용
           장치: 로컬로 로그온 한 사용자만이 CD-ROM에 액세스 가능 : 사용
                로컬 로그온을 해야만 장치 사용
           장치: 사용자가 프린터 드라이버를 설치할 수 없게 함 : 사용
           장치: 서명되지 않은 드라이버 설치 동작  : 설치 허용 안함
           장치: 이동식 미디어 포맷 및 꺼내기 허용  : Administrators
           도메인 컨트롤러: 컴퓨터 계정 암호 변경 거부 : 사용안함
           도메인 컨트롤러: Server Operator가 작업을 스케줄하도록 허용 : 사용안함
                Administrators 그룹만 허용
           도메인 구성원: 보안 채널 데이터를 디지털 암호화 또는 서명(항상) : 사용
           도메인 구성원: 컴퓨터 계정 암호 변경 사용 안함 : 사용안함
           도메인 구성원: 컴퓨터 계정 암호 최대 사용 기간 : 30일
                보안 강화 구성
           도메인 구성원: 고급 세션 키 요청(Windows 2000 또는 그 이상) : 사용
           대화형 로그온: 마지막 사용자 이름 표시 안함 : 사용
           대화형 로그온: [CTRL+ALT+DEL]을 사용할 필요없음 : 사용 안 함
           대화형 로그온: 캐시할 로그온의 회수(도메인 컨트롤러가 사용 불가능할 경우) : 0일
                도메인 컨트롤러가 사용 불가능할 경우 캐시된 로그온의 사용 안함
           대화형 로그온: 암호 만료전에 사용자에게 암호를 변경하도록 프롬프트 : 14일
           대화형 로그온: 워크스테이션 잠금 해제를 위해 도메인 컨트롤러 인증 필요 : 사용
           Microsoft 네트워크 클라이언트: 타사 SMB 서버에 암호화되지 않은 암호를 보냄: 사용안함
           Microsoft 네트워크 서버: 로그온 시간이 만료되면 클라이언트 연결 끊기 : 사용
           Microsoft 네트워크 서버: 세션 연결을 중단하기 전에 필요한 유휴 시간 : 15분
           네트워크 액세스: 네트워크 인증에 대한 자격 증명의 저장소나 .NET Passport 허용 안함 : 사용
           네트워크 액세스: 명명된 파이프와 공유에 대한 익명 액세스 제한 : 사용
           복구 콘솔: 모든 드라이브 및 폴더에 플로피 복사 및 액세스 허용 : 사용안함
           복구 콘솔: 자동 관리 로그온 허용 : 사용안함
           시스템 종료: 로그온 하지 않고 시스템 종료 허용 : 사용안함
           시스템 종료: 가상 메모리 페이지 파일 지움 : 사용
           시스템 개체: 내부 시스템 개체(예: 심볼 링크)에 대한 기본 사용 권한을 강화 : 사용

○ 물리적 보안 유지
    - 물리적 접근 제한
        신뢰할 수 있는 운영자만이 접근 가능한 Room에서 DC 운영
        물리적 잠금 장치 사용
        DC를 관리하기 위한 절차 수립
    - 다른 운영체제로의 부팅 제한
        플로피 디스크 드라이브 제거
        CD-ROM 또는 DVD 드라이브 제거
        Boot.INI의 [Timeout] 값을 0으로 설정
           다른 운영체제로의 부팅의 여지를 없앰

○ 참고자료
    - Microsoft TechNet Active Directory Operation
        http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/Operations/933b109f-42c5-4f85-9462-50b23b30e326.mspx
    - Active Directory Administration Webcast Series
        http://www.microsoft.com/events/series/adaug.mspx 

반응형
Posted by She쥐포s

http://maktub.tistory.com/22#main_b
여기서 가져왔습니다. 아래의 작성자 원 사이트는 폐쇄가 되었는지..
열리지가 않는 군요


오라클 9i / 10g용 관리 명령어(sql) 요약
-

순전히 이기적인 용도로 사용하기 위해 대충 만든 요약본입니다.
필요하신 분은 유용하게 사용하세요.
혹시나 옮겨가실 분은 댓글이라도 달아주세요. ^^

작성자 : mirsya
http://mirsya.tistory.com
최종수정 2007년 2월 18일 일요일

※틀린 부분이나 수정이 필요 한 부분은 가차없이 알려주세요.
!! 오렌지색 부분은 환경에 맞게 수정하세요.
Oracle 9i / 10g 관리자 명령어 요약
  1. Startup / Shutdown
  2. Session
  3. Parameter File
  4. Control File
  5. Redo Log
  6. Tablespace
  7. Temporary Tablespace
  8. Undo Tablespace
  9. Database Buffer Cache
  10. Row Migration / Chaining
  11. Partitioned Table
  12. Deferred Constraints
  13. User
  14. Profile
  15. Privileges
  16. Role
  17. Export
  18. Import
  19. Direct Load
  20. Oracle Net - Host Naming
  21. Oracle Net - Local Naming
  22. Create DB - 9i
  23. Create DB - 10g
  24. Archive Log
STARTUP / SHUTDOWN
STARTUP
startup [ nomount | mount | open [ read only ]]
SHUTDOWN
shutdown [ immediate | transactional | normal | abort ]
상태 변경
alter database [ mount | open [ read only ]];
STARTUP 상태 조회
select status from v$instance;
OPEN 상태 조회
select open_mode from v$database;
>>Index<<
SESSION
제한 상태로 변경
alter system enable restricted session;
제한 상태 조회
select logins from v$instance;
사용자 SESSION 조회
select sid, serial#, username, status from v$session;
사용자 SESSION 강제종료
alter system kill session 'SID,SERIAL#';
RESTRICTED SESSION 권한 조회
select * from dba_sys_privs where privilege like '%RESTRICT%';
>>Index<<
PARAMETER FILE
파일구분
spfile : binaryfile, open 상태에서 수정
pfile : textfile, shutdown 상태에서 수정
파일생성
shutdown 상태에서 수행
create spfile from pfile;
create pfile from spfile;
SPFILE
alter system set parameter_name = 'value' [ comment 'text' ]
[ scope = memory | spfile | both ] [ sid = 'sid' | '*' ];
PFILE
shutdown 상태에서 편집기로 편집
>>Index<<
CONTROL FILE
SPFILE 사용시
open 상태에서 명령수행
alter system set control_files = '경로1', '경로2' scope = spfile;
콘트롤 파일 복사 후 DB 재기동
PFILE 사용시
shutdown 상태에서 pfile 파라미터 수정
콘트롤 파일 복사 후 DB 기동
>>Index<<
REDO LOG
LOGSWITCH
현재 사용하는 로그파일을 변경
alter system switch logfile;
CHECKPOINT
active 상태의 로그파일을 inactive로 변경
alter system checkpoint;
LOG FILE 상태 조회
select a.group#, a.member, b.bytes, b.status
from v$logfile a, v$log b
where a.group# = b.group#;
GROUP 추가
alter database add logfile group 그룹번호 '파일경로' size 크기;
alter database add logfile group 그룹번호 ('파일경로1', '파일경로2') size 크기;
MEMBER 추가
alter database add logfile member '파일경로' to group 그룹번호;
GROUP / MEMBER 삭제
alter database drop logfile group 그룹번호;
alter database drop logfile member '파일경로';
※삭제 명령시 파일은 삭제되지 않음
>>Index<<
TABLESPACE
TABLESPACE 조회
select tablespace_name, status, contents, extent_management, segment_space_management
from dba_tablespaces;
DATAFILE 조회
select tablespace_name, bytes, file_name from dba_data_files;
TEMPFILE 조회
select tablespace_name, bytes, file_name from dba_temp_files;
일반 TABLESPACE 생성
create tablespace 테이블스페이스명 datafile '파일경로' size 크기
[ blocksize 크기] // 해당 블럭 사이즈의 db_nk_cache_size 설정 필요
[ extent management local ] // 8i 이전 필수 옵션
[ segment space management auto ] // 9i 이후 필수 옵션;
UNDO TABLESPACE 생성
create undo tablespace 테이블스페이스명 datafile '파일경로' size 크기;
TEMPORARY TABLESPACE 생성
create temporary tablespace 테이블스페이스명 tempfile '파일경로' size 크기;
TABLESPACE 확장
alter tablespace 테이블스페이스명 add datafile '파일경로' size 크기;
alter database datafile '파일경로' resize 크기;
TABLESPACE 관리
alter tablespace 테이블스페이스명 offline;
alter tablespace 테이블스페이스명 online;
alter tablespace 테이블스페이스명 rename datafile '원본파일경로' to '파일경로';
TABLESPACE 삭제
drop tablespace 테이블스페이스명 including contents and datafile cascade constraints;
문법
CREATE TABLESPACE 테이블스페이스명
DATAFILE '파일경로1' SIZE integer [M/K], '파일경로2' SIZE integer [M/K]
[ MINIMUM EXTENT integer [M/K]]
[ BLOCKSIZE integer [K]] [ DEFAULT STORAGE (
INITIAL integer [M/K]
NEXT integer [M/K]
MAXEXTENTS integer
MINEXTENTS integer
PCTINCREASE integer)]
[ ONLINE | OFFLINE ]
[ PERMANENT | TEMPORARY ]
[ EXTENT MANAGEMENT [ DICTIONARY | LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [M/K]]]]]
[ SEGMENT SPACE MANAGEMENT [ MANUAL | AUTO]]
OPEN 상태에서 DATAFILE 이동
alter tablespace 테이블스페이스명 offline;
offline 된 T/S에 대해 복사/이동 후
alter tablespace 테이블스페이스명 rename datafile '파일경로' to '파일경로';
alter tablespace 테이블스페이스명 online;
MOUNT 상태에서 DATAFILE 이동
startup mount;
해당 T/S에 대해 복사/이동 후
alter database rename file '파일경로' to '파일경로';
alter database open;
모든 데이타 파일은 mount상태에서 복사/이동 가능
system 파일은 mount상태에서만 복사/이동 가능
>>Index<<
TEMPORARY TABLESPACE
TEMPORARY TABLESPACE 관리
TEMPORARY T/S는 READ ONLY 설정 불가, nologgin 상태이며 rename불가, 복구대상이 아님
READ ONLY DATABASE 에서도 TEMPORARY 파일은 필요
DEFAULT TEMPORARY TABLESPACE 확인
select * from database_properties where property_name like '%TEMP%';
TEMPORARY TABLESPACE 변경
create temporary tablespace 테이블스페이스명_신 tempfile '파일경로' size 크기;
alter database default temporary tablespace 테이블스페이스명_신;
drop tablespace 테이블스페이스명_구;
>>Index<<
UNDO TABLESPACE
PARAMETER 설정 / 9i
UNDO_MANAGEMENT = AUTO [ MANUAL ]
UNDO_TABLESPACE = UNDOTBS1
UNDO_SUPPRESS_ERRORS = TRUE // 10g 에서는 쓰이지 않음
UNDO_RETENTION = integer (초)
PARAMETER 확인 / 9i
show parameter undo;
DEFAULT UNDO TABLESPACE 설정
alter system set undo_tablespace = 테이블스페이스명;
parameter 'UNDO_TABLESPACE' 수정
설정 조회
select segment_name, owner, tablespace_name, status
from dba_rollback_segs;
>>Index<<
DATABASE BUFFER CACHE
DBWR 기동 이벤트
Checkpoint - 일반적인 ckpt는 어디까지 내려썼는지만 확인 immediate ckpt시 즉시 내려씀
Dirty Block 임계값 도달
LRU List 의 Free Block 이 부족할 때
Time out
T/S offline (9i부터는 online시), read only, begin backup
Table Drop, Truncate
RAC ping
STANDARD BLOCK SIZE
System과 Temporary tablespace는 스탠다드 사이즈만 사용 가능
DB생성시 설정되는 표준 사이즈, 수정 불가(system T/S 가 이미 사용중이므로)
show parameter db_block_size
사용 가능한 BLOCK SIZE 조회
show parameter cache_size
db_nk_cache_size / n = '2, 4, 8, 16, 32'
DB_KEEP_CACHE_SIZE, DB_RECYCLE_CACHE_SIZE
hit rate 향상을 위한 parameter
db_keep_cache_size : 자주 호출되는 data를 pinning 할 때 쓰임
db_recycle_cache_size : 차후 호출될 가능성의 희박한 data를 읽을 때 쓰임
SGA 크기 조회
show parameter sga
show parameter sga_max
nk BLOCK SIZE의 TABLESPACE 생성
alter system set db_cache_size = 크기[M]; // SGA영역의 공간 확보를 위해 db_cache_size를 줄임
alter system set db_nk_cache_size = 크기[M]; // 줄여진 db_cache_size 만큼 할당 가능
create tablespace 테이블스페이스명 datafile '파일경로' size 크기 blocksize nk;
nk 블럭의 T/S가 존재하면 해당 db_nk_cache_size 를 0으로 설정 불가
>>Index<<
ROW MIGRATION / CHAINING
migration 은 해소 가능 chaining 은 해소 불가
오라클은 이 두 가지 경우를 구분하지 않음
TABLE 상태 확인
select owner, table_name, tablespace_name from dba_tables
where owner = '유저명' and table_name = '테이블명';
TABLE ANALYZE
analyze table 스키마.테이블명 compute statistics;
dictionary의 통계정보를 갱신시켜 주는 작업
CHAIN COUNT 조회
select num_rows, chain_cnt from dba_tables where table_name = '테이블명';
TABLE 이동
alter table 테이블명 move
[ tablespace 테이블스페이스명]; // 생략시 현재 사용중인 T/S 내에서 옮겨짐
INDEX 조회
select table_name, index_name, status from dba_indexes where table_name = '테이블명'
INDEX REBUILD
alter index 스키마.인덱스명 rebuild;
TABLE MOVE 명령후 ROWID가 변경됐으므로 INDEX를 REBUILD 해주어야 함
TABLE의 공간 사용량 조회
select num_rows, blocks, empty_blocks, avg_space, avg_row_ren from dba_tables
where owner = '유저명' and table_name = '테이블명';
BLOCKS : H/M 왼쪽 블럭 수
EMPTY_BLOCKS : 미사용 블럭 , H/M 오른쪽 블럭 수
AVG_SPACE : 사용중인 블럭의 평균 빈공간
AVG_ROW_LEN : row의 평균 길이
TABLE의 EXTENT설정 조회
select table_name, initial_extent, min_extents from dba_tables
where owner = '유저명' and table_name = '테이블명';
TABLESPACE의 EXTENT설정 조회
select tablespace_name, block_size, initial_extent, min_extents from dba_tablespaces
where tablespace_name = '테이블스페이스명';
>>Index<<
PARTITIONED TABLE
LIST 분할
create table table_name (column_1 type( ), column_2 type( ) ... )
partition by list (column_2) (
partition partition_name values ('value_1') tablespace tablespace_name,
partition partition_name values ('value_2') tablespace tablespace_name);
multi column partition 지원 안함
NULL 값 지정 가능, MAXVALUES 지정 불가
list를 구성하는 문자열은 4k 초과 불가
PARTITIONED TABLE 조회
select table_owner, table_name, partition_name, tablespace_name from dba_tab_partitions where table_owner = '유저명';
TABLE의 PARTITION 여부 조회
select owner, table_name, partitioned from dba_tables where owner = '유저명';
PARTITION 관리
alter table 테이블명 add partition partition_name values ('value') tablespace tablespace_name;
alter table 테이블명 drop partition partition_name;
RANGE 분할
create table table_name (column_1 type( ), column_2 type( ) ... )
partition by range (column_2) (
partition partition_name values less than (value_1),
partition partition_name values less than (value_2),
partition partition_name values less than ( MAXVALUE ) );
HASH 분할
create table table_name (column_1 type( ), column_2 type( ) ... )
partition by hash (column_2)
partitions integer store in (tablespace_name, tablespace_name);
>>Index<<
DEFERRED CONSTRAINTS
문법
CREATE TABLE table_name (column_1 type( ), column_2 type ( ), ...
CONSTRAINT constraint_name constraint_type (column)
[ NOT DEFERRABLE | DEFERRABLE [ INITIALLY [ IMMEDIATE | DEFERRED ]]]);
지연된 제약조건 활성화
ALTER SESSION SET CONSTRAINTS = [ IMMEDIATE | DEFERRED | DEFAULT ]
>>Index<<
USER
USER 생성
create user 유저명 identified by 패스워드
default tablespace 테이블스페이스명
temporary tablespace 임시테이블스페이스명
quota integer [M] on 유저명;
USER 변경
alter user 유저명 identified by 패스워드
default tablespace 테이블스페이스명
temporary tablespace 임시테이블스페이스명
quota integer [M] on 유저명
[ password expire ];
USER 의 TABLESPACE 할당량 조회
select * from dba_ts_quotas;
>>Index<<
PROFILE
PROFILE 조회
select distinct profile from dba_profiles;
USER 의 PROFILE 조회
select username, profile from dba_users;
PROFILE 생성
create profile profile_name limit
제한사항 value 제한사항 value ... ;
PROFILE 적용
alter user 유저명 profile profile_name;
PARAMETER 'resource_limit' 의 값이 TRUE로 설정되어 있어야 함
>>Index<<
PRIVILEGES
권한 부여 / SYSTEM PRIVS
grant 권한 to 유저명
[ with admin option ];
권한 부여 / OBJECT PRIVS
grant 권한 on 개체 to 유저명
[ with grant option ];
권한 조회
select * from dba_sys_privs where grantee like '유저명';
GRANT 조회 / TABLE
select * from all_tab_privs where table_name = '테이블명';
권한 취소 / SYSTEM PRIVS
revoke 권한 from 유저명;
권한 취소 / OBJECT PRIVS
revoke 권한 on 개체 from 유저명;
>>Index<<
ROLE
ROLE 의 PRIVS 조회
select * from dba_sys_privs where grantee = 'role_name';
ROLE 생성
create role role_name;
ROLE 에 SYSTEM PRIVS 부여
grant privs_name to role_name;
ROLE 에 OBJECT PRIVS 부여
grant privs_name on 개체 to role_name;
DEFAULT ROLE 지정
alter user user_name default role role_name;
ROLE 활성화
set role role_name;
set role all;
ROLE 조회
select * from session_roles;
>>Index<<
EXPORT
문법
]$ exp username/passwd option=(value1, value2, ... ) option=value ...
OPTION
  • file
    : 백업 파일명 지정 (default : expdat.dmp)
  • rows
    : 테이블의 row의 포함 여부 지정
  • full
    : 전체 DB에 대한 익스포트 지정
  • owner
    : 익스포트할 사용자 지정 (사용자모드)
  • table
    : 익스포트할 테이블 지정 (테이블모드)
  • tablespace
    : 익스포트할 테이블스페이스 지정 (T/S 모드)
  • inctype
    : 전체 백업 레벨 지정 (8i까지만 사용됨)
  • indexes
    : 인덱스 익스포트 지정
full, owner, table, tablespace 는 동시 사용 불가
익스포트시 sys로 작업은 지양 (dictionary data까지 포함되므로)
>>Index<<
IMPORT
문법
]$ imp username/passwd option=(value1, value2, ... ) option=value ...
OPTION
  • file
    : 입력 파일명 지정
  • ignore
    : 임포트 실행중 입력 오류 무시
  • rows
    : 테이블의 row의 포함 여부 지정
  • full
    : 전체 DB에 대한 임포트트 지정
  • fromuser
    : 익스포트된 객체를 소유한 사용자중 임포트 대상이 되는 사용자
  • touser
    : 임포트할 대상이 되는 사용자
  • table
    : 임포트할 테이블 지정
  • tablespace
    : 임포트할 테이블스페이스 지정
임포트 작업시 실행 순서 : 새로운 테이블생성 / 데이터 입력, 인덱스 리빌드 / 제약조건 활성화
>>Index<<
DIRECT LOAD
DIRECT LOAD SAMPLE
sample.ctl
LOAD DATA INFILE * INTO TABLE table_name
FIELDS TERMINATED BY ',' (column1, column2, column3)
BEGINDATA
111,aa,95
112,ab,86
...
...

]$ sqlldr username/passwd sample.ctl
>>Index<<
ORACLE NET / HOST NAMING
HOST NAMING
port 번호등의 정보를 Client에게 제공하지 않음
다수의 DB를 운용하는 경우는 사용할 수 없음
GLOBAL_DBNAME은 되도록이면 도메인 형식을 사용
(호스트명만 기입시 Windows Client 에서만 이용가능)
SERVER 설정 / LINUX
$ORACLE_HOME/network/admin/listener.ora
  • ora10g =
  • (ADDRESS_LIST =
  • (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.xxx.xxx) (PORT = 1521))
  • )
  • SID_LIST_ora10g =
  • (SID_LIST =
  • (SID_DESC = (GLOBAL_DBNAME = ora10g.xxx.xxx)
  • (ORACLE_HOME = /app/ora10g/10g)
  • (SID_NAME = DB09)
  • )
  • )
LISTENER 구동
]$ lsnrctl start ora10g
CLIENT 설정 / WINDOWS
GLOBAL_DBNAME 으로 ping이 되는지 확인, 필요시 hosts나 DNS에 등록
%ORACLE_HOME%\network\admin\sqlnet.ora
  • SQLNET.AUTHENTICATION_SERVICES= (NTS)
  • NAMES.DIRECTORY_PATH= (HOSTNAME)
C:\>sqlplus username/passwd@ora10g.xxx.xxx
CLIENT 설정 / LINUX
GLOBAL_DBNAME 으로 ping이 되는지 확인, 필요시 hosts나 DNS에 등록
$ORACLE_HOME/network/admin/sqlnet.ora
  • NAMES.DIRECTORY_PATH= (HOSTNAME)
]$ sqlplus username/passwd@ora10g.xxx.xxx
>>Index<<
ORACLE NET / LOCAL NAMING
LOCAL NAMING
port 번호등 서버정보를 Client가 가지고 있음
SERVER 설정 / LINUX
$ORACLE_HOME/network/admin/listener.ora
  • ora10g =
  • (ADDRESS_LIST =
  • (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.xxx.xxx) (PORT = 1521))
  • )
  • SID_LIST_ora10g =
  • (SID_LIST =
  • (SID_DESC = (ORACLE_HOME = /app/ora10g/10g)
  • (SID_NAME = DB09)
  • )
  • )
다수의 DB가 존재 할 경우 각 DB의 listner port번호는 다르게 설정한다
LISTENER 구동
]$ lsnrctl start ora10g
각각의 DB에 해당하는 listener.ora 파일을 생성하고 listener를 각각 구동한다
CLIENT 설정 / NAMES.DEFAULT_DOMAIN 미설정 시
sqlnet.ora
  • NAMES.DIRECTORY_PATH= (TNSNAMES)
tnsnames.ora
  • ora9i =
  • (DESCRIPTION =
  • (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.xxx.xxx) (PORT = 1529))
  • (CONNECT_DATA = (SID = DB09))
  • )
  • ora10g =
  • (DESCRIPTION =
  • (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.xxx.xxx) (PORT = 1521))
  • (CONNECT_DATA = (SID = DB10))
  • )
]$ sqlplus username/passwd@ora10g
]$ sqlplus username/passwd@ora9i
CLIENT 설정 / NAMES.DEFAULT_DOMAIN 설정 시
TCP/IP 에서의 DOMAIN과 관계 없음
sqlnet.ora
  • NAMES.DEFAULT_DOMAIN= webdb.co.kr
  • NAMES.DIRECTORY_PATH= (TNSNAMES)
tnsnames.ora
  • ora9i.webdb.co.kr =
  • (DESCRIPTION =
  • (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.xxx.xxx) (PORT = 1529))
  • (CONNECT_DATA = (SID = DB09))
  • )
  • ora10g.webdb.co.kr =
  • (DESCRIPTION =
  • (ADDRESS = (PROTOCOL = TCP) (HOST = xxx.xxx.xxx.xxx) (PORT = 1521))
  • (CONNECT_DATA = (SID = DB10))
  • )
]$ sqlplus username/passwd@ora10g
]$ sqlplus username/passwd@ora9i
]$ sqlplus username/passwd@ora10g.webdb.co.kr
>>Index<<
DATABASE 생성 / 9i
ENV CHECK
]$ env | grep ORACLE
기존 파일 삭제
$ORACLE_BASE/oradata/
$ORACLE_BASE/admin/$ORACLE_SID/
PARAMETER FILE 편집
$ORACLE_HOME/dbs/initSID_name.ora
DB 생성
createdb.sql
  • CREATE DATABASE $ORACLE_SID
  • LOGFILE
  • GROUP 1 ('$ORACLE_BASE/oradata/disk4/redo01.log') size 1M,
  • GROUP 2 ('$ORACLE_BASE/oradata/disk4/redo02.log') size 1M,
  • GROUP 3 ('$ORACLE_BASE/oradata/disk4/redo03.log') size 1M
  • MAXLOGFILES 5
  • MAXLOGMEMBERS 5
  • MAXDATAFILES 100
  • DATAFILE
  • '$ORACLE_BASE/oradata/disk3/system01.dbf' size 300M
  • EXTENT MANAGEMENT LOCAL
  • UNDO TABLESPACE undo DATAFILE
  • '$ORACLE_BASE/oradata/disk3/undo01.dbf' size 10M
  • DEFAULT TEMPORARY TABLESPACE temp TEMPFILE
  • '$ORACLE_BASE/oradata/disk3/temp01.dbf' size 10M
  • CHARACTER SET KO16KSC5601
  • ;
  • @$ORACLE_HOME/rdbms/admin/catalog.sql
  • @$ORACLE_HOME/rdbms/admin/catproc.sql
  • conn system/manager;
  • @$ORACLE_HOME/sqlplus/admin/pupbld.sql
]$ sqlplus '/as sysdba'
SQL> startup nomount
SQL> @createdb.sql
>>Index<<
DATABASE 생성 / 10g
ENV CHECK
]$ env | grep ORACLE
기존 파일 삭제
$ORACLE_BASE/oradata/
$ORACLE_BASE/admin/$ORACLE_SID/
PARAMETER FILE 편집
$ORACLE_HOME/dbs/initSID_name.ora
DB 생성
createdb.sql
  • CREATE DATABASE $ORACLE_SID
  • LOGFILE
  • GROUP 1 ('$ORACLE_BASE/oradata/disk4/redo01.log') size 4M,
  • GROUP 2 ('$ORACLE_BASE/oradata/disk4/redo02.log') size 4M,
  • GROUP 3 ('$ORACLE_BASE/oradata/disk4/redo03.log') size 4M
  • MAXLOGFILES 5
  • MAXLOGMEMBERS 5
  • MAXDATAFILES 100
  • DATAFILE
  • '$ORACLE_BASE/oradata/disk3/system01.dbf' size 300M
  • EXTENT MANAGEMENT LOCAL
  • SYSAUX DATAFILE
  • '$ORACLE_BASE/oradata/disk3/sysaux01.dbf' size 200M
  • UNDO TABLESPACE undo DATAFILE
  • '$ORACLE_BASE/oradata/disk3/undo01.dbf' size 10M
  • DEFAULT TEMPORARY TABLESPACE temp TEMPFILE
  • '$ORACLE_BASE/oradata/disk3/temp01.dbf' size 10M
  • CHARACTER SET KO16KSC5601
  • ;
  • @$ORACLE_HOME/rdbms/admin/catalog.sql
  • @$ORACLE_HOME/rdbms/admin/catproc.sql
  • conn system/manager;
  • @$ORACLE_HOME/sqlplus/admin/pupbld.sql
]$ sqlplus '/as sysdba'
SQL> startup nomount
SQL> @createdb.sql
>>Index<<
ARCHIVE LOG MODE
DB 종료
SQL> shutown immediate
Parameter File 수정
  • log_archive_start = true
  • log_archive_dest = destination
  • log_archive_format = %S.arc
다수의 아카이빙
  • log_archive_duplex_dest = destination
  • log_archive_min_succed_dest = [ 1 | 2 ]
  • log_archive_dest_# = "location = destination"
  • log_archive_dest_# = "service = tnsname"
DB 기동 / 아카이브 모드 변경
SQL> startup mount
SQL> alter database archivelog; SQL> startup open
아카이브 모드 확인 후 Close Backup
SQL> archive log list
>>Index<<

반응형
Posted by She쥐포s

2008. 10. 17. 18:04 RedHat

참고할 Guide 문서

CentOS 5.2의 문서를 찾으니 모두 RedHat Enterprise 5.2를 걸어놨더구먼..
암튼 앞으로 아래의 문서들을 읽어가면서 정리를 하고자 한다.

- Cluster_Administration.pdf : 클러스터 관리
- Cluster_Suite_Overview.pdf : 클러스터 슈트 개관
- Deployment_Guide.pdf : 실무 적용 가이드
- DM_Multipath.pdf : Device Mapper를 이용한 경로 다중화
- Global_File_System.pdf : GFS
- Global_Network_Block_Device.pdf : GNBD with GFS
- Installation_Guide.pdf : 설치 가이드
- Virtualization.pdf : 서버 가상화
- Virtual_Server_Administration.pdf : 가상서버 관리(LVS)
- Cluster_Logical_Volume_Manager.pdf : LVM 관련

벌써부터 영어의 압박이 밀려오는 듯...

RedHat Korea는 뭐하시나 한글화 안하시나?
반응형
Posted by She쥐포s

※ 이 글은 지인을 통한 귀동냥과 인터넷 검색을 이용한 정보를 가공한 것이다.

회사에 mysql 서버가 있는데 댄장.. 패스워드를 모른다.. 사용자도 무엇이 있는지 알 수가 없다.
대략 난감... mysql을 --skip-grant 모드로 띄우라고 하던데..

일단 OS는 Sun Solaris 5.8 for Sparc, mysql은 4.0.17

0. mysql 종료
    - 기동스크립트가 있는 경우
        # /etc/init.d/mysql stop
    - 기동스크립트가 없는 경우 걍..(요건 해보지 않았다.)
        # killall mysqld

1. 사용자 인증 우회
    - /etc/init.d/mysql의 start 부분에 --skip-grant-table 추가 후
        # /etc/init.d/mysql start
    또는
    - mysqld_safe에 옵션을 주고 실행
        # cd /usr/local/mysql/bin
        # ./mysqld_safe --skip-grant-table &

2. 패스워드 없이 mysql root 계정 로그인(/usr/local/mysql/bin이 PATH에 있다고 가정)
        # mysql -u root mysql

3. update문을 이용하여 mysql DB의 user TABLE의 root 패스워드를 업데이트한다.
        mysql> update user set password=password('PASSWORD') where user='root';

4. 변경된 mysql 권한 테이블에 변경된 권한 설정 적용
        mysql> flush privileges;

5. mysql 종료
        mysql> exit

6. 일반적인 방법으로 mysql 시작
    0.번항목을 참고하여 mysql 정지
    1.번항목에서 
    - /etc/init.d/mysql의 start 부분에 --skip-grant-table 제거 후
        # /etc/init.d/mysql start
    또는
    - mysqld_safe 실행
        # cd /usr/local/mysql/bin
        # ./mysqld_safe &

반응형
Posted by She쥐포s
내가 리눅스를 만난지도 어언 14년이나 되었네..
동생이 PC통신하면서 지인을 통해 받았던 5.25inch Floppy 약 30장.. Slackware Linux
설치하다가 중간에 뻑나고..

또 동생이 사온 건잠머리연구소(? 클래스데이타?)의 한글리눅스, 영문리눅스 CD로
이리저리 설치하느라 궁리도 해보고 한글리눅스는 잘 되지 않아서 영문리눅스 CD로
설치하고 해상도도 제대로 못잡고 Window Manager도 제대로 설정되지 않아 twm의
껍데기도 없는 회색 체크무늬화면을 보기까지도 근 2주일이 걸렸던거 같은데...

그때만해도 설치완료까지 걸린 시간이 최소 2시간 30분??

그당시만해도 560MB HDD에서 DOS의 한계로 512MB까지 밖에 인식을 못하던 단점을
극복하고 560MB를 Full로 쓸 수 있다는 것에 매력을 느껴... "엇쭈 이것봐라.."했던 기억..

한번 물고 늘어져보자 싶어 하이텔 리눅스 동호회에서 게시판 담당자도 해보고 PC통신을
이용해 밤이면 밤마다 ppp를 이용한 서버꾸미기 놀이를 하며 새벽3시를 안 넘기면 잠이
오지 않던 기억..

그러다가 운이 좋게도 리눅스코리아라는 회사에서 사회 첫발을 디디고..
IRC를 통해 사람들을 만나면서 IO Linux라는 회사를 만들고자 했던 기억...

움 Intel Server 업체로 옮기면서 한동안 Linux와 멀어져 있다가.. 요즘들어 새롭게
공부를 하려고 하니 다시 배워야 하고, 옛기억도 되살려야 할 부분들이 엄청나게 많네..

Red Hat Enterprise Linux도 5.2가 나왔고 CentOS도 5.2가 나왔고.. 해서 CentOS 홈페이지에
있는 Guide를 보니 죄다 Red Hat Enterprise Linux 문서더구만..

Guide를 보면서 하나하나 다시 정리하고자 Linux 카테고리 및 Red Hat Linux 서브 카테고리를
등록하였다.

우리나라 리눅서중에는 나보다도 실력이 좋은 고수들이 많이 계시지만.. 이제 처음 시작하거나
그리 오랜기간 만져보지 않은 리눅서들에게는 분명 좋은 참고가 될 것이라고 본다.

by pgclks
반응형
Posted by She쥐포s

2008. 10. 15. 21:23 Unix

apache rotatelogs

아파치를 관리하다보면 별도의 설정이 없다면 로그 Size가 겉잡을 수 없이 커지게 된다.
로그 Size가 커지면 아파치 서버에 부하를 주게 된다.

이럴 경우 아파치의 rotatelogs를 이용하여 로그를 관리할 수 있다.

1) 일정간격으로 rotate
    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log 86400" common
    86400초 단위로 logrotate, 파일이름은 access_log.[timestamp]의 형식으로 저장되며 date의 포맷을
    사용할 수 있다. 즉 access_log.%m%d-%H%M%S 의 형태로 access_log.월일-시분초의 포맷으로
    저장할 수 있다.

2) 일정 Size로 rotate
    CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log.%m%d-%H%M%S 100M" common
    로그의 Size를 100MB로 지정한다.
반응형
Posted by She쥐포s
꼬맹이(일명 명견이)가 마늘에 손을 대기 시작했다.
개집 있는 곳에 마늘을 매달아 놨는데 그걸 건드려
떨어뜨리고 있는 것이다.

이누무 좌쉭이 인간이 되려고 발악을 하는 것은 아닌지..
벌써 1/4접은 떨어 뜨린듯하다...

휴..
반응형
Posted by She쥐포s

어떤 명령을 실행한 결과에서 일정패턴을 찾아 그 결과중 일정부분을 찾으려고 했을때
다음과 같이 입력하는 경험을 해본적이 있을 것이다.
물론 나도 그랬으니까...

$ command | grep PATTERN | awk '{ print $3 }'

위의 문장은 awk의 특성을 이용하여 다음과 같이 줄여 쓸 수 있다.

$ command | awk '/PATTERN/{ print $3 }'

-------------------------<원문>-------------------------
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                             UNIX GURU UNIVERSE
                                UNIX HOT TIP
                       Unix Tip 3171 - October 11, 2008
                   http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

REGEXP MATCHING IN AWK

If you ever find yourself typing "command | grep pattern | awk '{print $3}'
you can shorten this by using the regexp matching in awk, like this:

command | awk '/pattern/{print $3}'

반응형
Posted by She쥐포s

블로그 이미지
She쥐포s
Yesterday
Today
Total

달력

 « |  » 2025.7
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함