secrets of the oracale database

554 2K 0
secrets of the oracale database

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

this print for content only—size & color not accurate spine = 1.054" 552 page count Books for professionals By professionals ® Secrets of the Oracle Database Dear Reader, The official documentation on the ORACLE database server is so vast that you will never manage to read it entirely. Yet in all that vastness, some very use- ful features go completely undocumented, and others are only partially-docu- mented. Read this book, learn to apply those features, and you will lift your DBA skills to the next level. Whether you are dealing with administrative tasks, performance optimiza- tion, or database security, this book will give you additional insights as well as caveats that you will not find in Oracle Corporation’s official documentation. How can that be? I have been working with the ORACLE DBMS for more than 13 years and I have contributed to several documentation volumes during my tenure at Oracle. I have experienced first-hand that the information flow from the developers to the documentation writers is often insufficient and that the writers have not used the features they document. My favorite part of the book is about performance optimization. You will learn how extended SQL trace, Statspack, AWR, and my MERITS perfor- mance optimization method all combine to really make a difference in your tuning efforts. I am confident that the MERITS method and the included ESQLTRCPROF SQL trace profiler will enable you to solve performance prob- lems that you have struggled with in the past. Do not worry that the insights you will gain will soon become obsolete. Most of the undocumented aspects described herein are remarkably stable. I have taken great care to never write about a feature that I haven’t thoroughly tested, and to provide proof for what I say. Reading this book will help set you apart from fellow DBAs by giving you just that decisive bit more that you need to solve a problem. Sincerely, Norbert Debes Norbert Debes is the coauthor of two books on Oracle9i database administration, develop- ment, and high availability. Shelve in Databases/Oracle User level: Intermediate–Advanced Debes Secrets of the Oracle Database The eXperT’s Voice ® in oracle Secrets of the Oracle Database cyan MaGenTa yelloW Black panTone 123 c Norbert Debes Foreword by Guy Harrison THE APRESS ROADMAP Mastering Oracle SQL and SQL*Plus Beginning Oracle Database 11g Administration Expert Oracle Database 11g Administration Troubleshooting Oracle Performance Oracle Insights Secrets of the Oracle Database www.apress.com SOURCE CODE ONLINE Advanced administration, tuning, and troubleshooting using undocumented features ISBN 978-1-4302-1952-1 9 781430 219521 9 0 0 0 0 Download at Boykma.Com Secrets of the Oracle Database ■■■ Norbert Debes Debes_1952-1FRONT.fm Page i Monday, May 11, 2009 3:30 PM Download at Boykma.Com Secrets of the Oracle Database Copyright © 2009 by Norbert Debes All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-4302-1952-1 ISBN-13 (electronic): 978-1-4302-1953-8 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Jonathan Gennick Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Tony Campbell, Gary Cornell, Jonathan Gennick, Michelle Lowman, Matthew Moodie, Jeffrey Pepper, Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Project Manager: Beth Christmas Copy Editor: Lisa Hamilton Associate Production Director: Kari Brooks-Copony Production Editor: Kelly Winquist Compositor: Susan Glinert Proofreader: Greg Teague Indexer: Norbert Debes Artist: April Milne Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com, or visit http://www.springeronline.com. For information on translations, please contact Apress directly at 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com, or visit http:// www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at http://www.apress.com/info/bulksales. The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.com. You will need to answer questions pertaining to this book in order to successfully download the code. Debes_1952-1FRONT.fm Page ii Monday, May 11, 2009 3:30 PM Download at Boykma.Com Debes_1952-1FRONT.fm Page iii Monday, May 11, 2009 3:30 PM Download at Boykma.Com iv Contents at a Glance Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi About the Foreword Writer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii PART 1 ■ ■ ■ Initialization Parameters ■CHAPTER 1 Partially Documented Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ■CHAPTER 2 Hidden Initialization Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 PART 2 ■ ■ ■ Data Dictionary Base Tables ■CHAPTER 3 Introduction to Data Dictionary Base Tables . . . . . . . . . . . . . . . . . . . 41 ■CHAPTER 4 IND$, V$OBJECT_USAGE, and Index Monitoring . . . . . . . . . . . . . . . . 45 PART 3 ■ ■ ■ Events ■CHAPTER 5 Event 10027 and Deadlock Diagnosis . . . . . . . . . . . . . . . . . . . . . . . . . 57 ■CHAPTER 6 Event 10046 and Extended SQL Trace . . . . . . . . . . . . . . . . . . . . . . . . . 61 ■CHAPTER 7 Event 10053 and the Cost Based Optimizer . . . . . . . . . . . . . . . . . . . . 63 ■CHAPTER 8 Event 10079 and Oracle Net Packet Contents . . . . . . . . . . . . . . . . . . 87 PART 4 ■ ■ ■ X$ Fixed Tables ■CHAPTER 9 Introduction to X$ Fixed Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 ■CHAPTER 10 X$BH and Latch Contention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 ■CHAPTER 11 X$KSLED and Enhanced Session Wait Data . . . . . . . . . . . . . . . . . . . 113 ■CHAPTER 12 X$KFFXP and ASM Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Debes_1952-1FRONT.fm Page iv Monday, May 11, 2009 3:30 PM Download at Boykma.Com v PART 5 ■ ■ ■ SQL Statements ■CHAPTER 13 ALTER SESSION/SYSTEM SET EVENTS . . . . . . . . . . . . . . . . . . . . . . . 129 ■CHAPTER 14 ALTER SESSION SET CURRENT_SCHEMA . . . . . . . . . . . . . . . . . . . . . 135 ■CHAPTER 15 ALTER USER IDENTIFIED BY VALUES . . . . . . . . . . . . . . . . . . . . . . . . . 143 ■CHAPTER 16 SELECT FOR UPDATE SKIP LOCKED . . . . . . . . . . . . . . . . . . . . . . . . . . 149 PART 6 ■ ■ ■ Supplied PL/SQL Packages ■CHAPTER 17 DBMS_BACKUP_RESTORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 ■CHAPTER 18 DBMS_IJOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 ■CHAPTER 19 DBMS_SCHEDULER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 ■CHAPTER 20 DBMS_SYSTEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 ■CHAPTER 21 DBMS_UTILITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 PART 7 ■ ■ ■ Application Development ■CHAPTER 22 Perl DBI and DBD::Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 ■CHAPTER 23 Application Instrumentation and End-to-End Tracing . . . . . . . . . . 251 PART 8 ■ ■ ■ Performance ■CHAPTER 24 Extended SQL Trace File Format Reference . . . . . . . . . . . . . . . . . . 271 ■CHAPTER 25 Statspack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 ■CHAPTER 26 Integrating Extended SQL Trace and AWR . . . . . . . . . . . . . . . . . . . . 345 ■CHAPTER 27 ESQLTRCPROF Extended SQL Trace Profiler . . . . . . . . . . . . . . . . . . 351 ■CHAPTER 28 The MERITS Performance Optimization Method . . . . . . . . . . . . . . . 371 Debes_1952-1FRONT.fm Page v Monday, May 11, 2009 3:30 PM Download at Boykma.Com vi PART 9 ■ ■ ■ Oracle Net ■CHAPTER 29 TNS Listener IP Address Binding and IP=FIRST . . . . . . . . . . . . . . . 401 ■CHAPTER 30 TNS Listener TCP/IP Valid Node Checking . . . . . . . . . . . . . . . . . . . . 413 ■CHAPTER 31 Local Naming Parameter ENABLE=BROKEN . . . . . . . . . . . . . . . . . . 419 ■CHAPTER 32 Default Host Name in Oracle Net Configurations . . . . . . . . . . . . . . 423 PART 10 ■ ■ ■ Real Application Clusters ■CHAPTER 33 Session Disconnection, Load Rebalancing, and TAF . . . . . . . . . . . 429 ■CHAPTER 34 Removing the RAC Option Without Reinstalling . . . . . . . . . . . . . . . 445 PART 11 ■ ■ ■ Utilities ■CHAPTER 35 OERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 ■CHAPTER 36 Recovery Manager Pipe Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 ■CHAPTER 37 ORADEBUG SQL*Plus Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 PART 12 ■ ■ ■ Appendixes ■APPENDIX A Enabling and Disabling DBMS Options . . . . . . . . . . . . . . . . . . . . . . . 495 ■APPENDIX B Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 ■APPENDIX C Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 ■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 Debes_1952-1FRONT.fm Page vi Monday, May 11, 2009 3:30 PM Download at Boykma.Com vii Contents Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi About the Foreword Writer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii PART 1 ■ ■ ■ Initialization Parameters ■CHAPTER 1 Partially Documented Parameters . . . . . . . . . . . . . . . . . . . . . . . . 3 AUDIT_SYSLOG_LEVEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Syslog Facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Introduction to Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Using AUDIT_SYSLOG_LEVEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Auditing Non-Privileged Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Lessons Learned. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 PGA_AGGREGATE_TARGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Introduction to Automatic PGA Memory Management . . . . . . . . . . . . 8 Misconceptions About PGA_AGGREGATE_TARGET . . . . . . . . . . . . . 10 Researching PGA_AGGREGATE_TARGET. . . . . . . . . . . . . . . . . . . . . . 11 Creating a Large Table with a Pipelined Table Function . . . . . . . . . 11 V$SQL_WORKAREA_ACTIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 _PGA_MAX_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 _SMM_MAX_SIZE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 _SMM_PX_MAX_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Shared Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Parallel Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Lessons Learned. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 EVENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Leveraging Events at the Instance-Level . . . . . . . . . . . . . . . . . . . . . . 22 Case Study. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Debes_1952-1FRONT.fm Page vii Monday, May 11, 2009 3:30 PM Download at Boykma.Com viii ■CONTENTS OS_AUTHENT_PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 OPS$ Database Users and Password Authentication . . . . . . . . . . . . 23 Case Study. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Lessons Learned. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Source Code Depot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ■CHAPTER 2 Hidden Initialization Parameters . . . . . . . . . . . . . . . . . . . . . . . . . 29 Trace File Permissions and _TRACE_FILES_PUBLIC . . . . . . . . . . . . . . . . 30 ASM Test Environment and _ASM_ALLOW_ONLY_RAW_DISKS . . . . . . 31 ASM Hidden Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Setting Up Oracle Clusterware for ASM . . . . . . . . . . . . . . . . . . . . . . . 33 ASM Instance Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Disk Failure Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Source Code Depot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 PART 2 ■ ■ ■ Data Dictionary Base Tables ■CHAPTER 3 Introduction to Data Dictionary Base Tables . . . . . . . . . . . . . 41 Large Objects and PCTVERSION vs. RETENTION . . . . . . . . . . . . . . . . . . . . 42 ■CHAPTER 4 IND$, V$OBJECT_USAGE, and Index Monitoring . . . . . . . . . 45 Schema Restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Index Usage Monitoring Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Function MONITOR_SCHEMA_INDEXES. . . . . . . . . . . . . . . . . . . . . . . 47 Enabling Index Monitoring on Schema HR. . . . . . . . . . . . . . . . . . . . . 48 Lessons Learned. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Source Code Depot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 PART 3 ■ ■ ■ Events ■CHAPTER 5 Event 10027 and Deadlock Diagnosis . . . . . . . . . . . . . . . . . . . . 57 Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Event 10027 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 ■CHAPTER 6 Event 10046 and Extended SQL Trace . . . . . . . . . . . . . . . . . . . . 61 Debes_1952-1FRONT.fm Page viii Monday, May 11, 2009 3:30 PM Download at Boykma.Com [...]... S ecrets of the ORACLE Database brings together a wealth of information on undocumented as well as incompletely documented features of the ORACLE database management system (DBMS) It has been my goal to combine many of the hidden features of the ORACLE database server into a single source You will be hard-pressed to find the same density of material on advanced, undocumented topics in another book... you were on your own From the beginning, Oracle seemed more of a mystery that needed solving than did other software of the day such as VMS, UNIX, or (chuckle) MS-DOS How does Oracle work? Why is this SQL so slow? How can I make Oracle go faster? The urge to understand the secrets of Oracle has driven many of us who’ve made Oracle software the basis for their career Throughout the 90s, pioneers such as... full text search of the documentation provided on the Oracle Technology Network2 web site does not yield any hint of the feature’s existence A feature is said to be partially documented if the full text search does reveal that the feature exists, but significant aspects of the feature are undocumented, thus limiting the usefulness of the feature Incomplete documentation often causes the need to investigate... R O D U C T I O N ORACLE DBMS (database management system) to refer to the database server software Oracle Corporation offers Database vs Instance On page 1-8, the manual Oracle Database Concepts 10g Release 2 explains the physical database structures of an Oracle database, including data files, redo log files, and control files” Thus, an ORACLE database is made up of data files (grouped into tablespaces),... far as I know, ESQLTRCPROF is the only profiler that classifies the wait event SQL*Net message from client into unavoidable latency due to client/ server communication and think time due to non -database related processing by the client This configurable feature of the profiler alone is immensely valuable in situations where proof is needed that the ORACLE DBMS is not the cause of a performance problem... a database that was backed up with Recovery Manager (RMAN), in a disaster scenario, that is, after the loss of the RMAN catalog and all database files including the most recent copy of the control file, which contains the directory of the most recent backups The remaining packages covered address topics such as performance diagnosis and tracing (DBMS_SYSTEM), jobs (DBMS_IJOB), undocumented aspects of. .. with Oracle database software for about 21 years The first Oracle database release I worked with was 5.1 In my early days, the Oracle documentation set consisted of a few slim manuals The World Wide Web was still five years in the future, and most of us didn’t even have access to the USENET Internet groups such as comp.databases.oracle There were no books published on Oracle Aside from the odd call... often used incorrectly If we take the definition of a database as consisting of data files, redo log files, and control files literally, then it is obvious that a database cannot be started It is the ORACLE DBMS instance, which consists of processes and memory structures such as the SGA, that breathes life into an ORACLE database I invite you to adopt the wording concerning database and instance in Table... suspects that they might backfire when used in the wrong situation or without fully understanding the implications of their use Such features are not the subject of this book either Instead, this text is centered on those undocumented features that provide significant benefit without compromising the integrity or availability of databases In this book, a certain feature is said to be undocumented if the full... from the Apress web page Each listing that exceeds approximately a dozen lines is identified by a unique file name At the end of most chapters, there is a section titled Source Code Depot This section lists all the source files of the respective chapter and their functionality To download the source code depot of the entire book, browse to http://www.apress.com/book/view/1430219521 and click on the . 1.054" 552 page count Books for professionals By professionals ® Secrets of the Oracle Database Dear Reader, The official documentation on the ORACLE database server is so vast that you will. 0 Download at Boykma.Com Secrets of the Oracle Database ■■■ Norbert Debes Debes_1952-1FRONT.fm Page i Monday, May 11, 2009 3:30 PM Download at Boykma.Com Secrets of the Oracle Database Copyright. is the coauthor of two books on Oracle9i database administration, develop- ment, and high availability. Shelve in Databases/Oracle User level: Intermediate–Advanced Debes Secrets of the

Ngày đăng: 27/10/2014, 00:57

Mục lục

  • Contents at a Glance

  • About the Foreword Writer

  • Introduction

    • ORACLE Database Server Releases

    • Intended Audience of This Book

    • Organization of This Book

    • Send Us Your Comments

    • Partially Documented Parameters

      • AUDIT_SYSLOG_LEVEL

        • Syslog Facility

        • Using AUDIT_SYSLOG_LEVEL

        • PGA_AGGREGATE_TARGET

          • Introduction to Automatic PGA Memory Management

          • Misconceptions About PGA_AGGREGATE_TARGET

          • Researching PGA_AGGREGATE_TARGET

          • Creating a Large Table with a Pipelined Table Function

          • V$SQL_WORKAREA_ACTIVE

          • _SMM_PX_MAX_SIZE

          • Leveraging Events at the Instance-Level

          • OS_AUTHENT_PREFIX

            • OPS$ Database Users and Password Authentication

            • Hidden Initialization Parameters

              • Trace File Permissions and _TRACE_FILES_PUBLIC

              • ASM Test Environment and _ASM_ALLOW_ONLY_RAW_DISKS

                • ASM Hidden Parameters

                • Setting Up Oracle Clusterware for ASM

                • IND$, V$OBJECT_USAGE, and Index Monitoring

                  • Schema Restriction

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan