mirror of https://gitee.com/bigwinds/arangodb
246 lines
9.7 KiB
Plaintext
246 lines
9.7 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
/// @brief dba guide guide
|
|
///
|
|
/// @file
|
|
///
|
|
/// DISCLAIMER
|
|
///
|
|
/// Copyright 2012 triagens GmbH, Cologne, Germany
|
|
///
|
|
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
/// you may not use this file except in compliance with the License.
|
|
/// You may obtain a copy of the License at
|
|
///
|
|
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
///
|
|
/// Unless required by applicable law or agreed to in writing, software
|
|
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
/// See the License for the specific language governing permissions and
|
|
/// limitations under the License.
|
|
///
|
|
/// Copyright holder is triAGENS GmbH, Cologne, Germany
|
|
///
|
|
/// @author Dr. Frank Celler
|
|
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- DBA MANUAL
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManual ArangoDB's DBA Manual (@VERSION)
|
|
///
|
|
/// @NAVIGATE{UserManual,Home,ImpManual}
|
|
///
|
|
/// @if LATEX
|
|
/// <ul>
|
|
/// <li>@ref DbaManualBasics</li>
|
|
/// <li>@ref DbaManualAuthentication</li>
|
|
/// <li>@ref DbaManualDatafileDebugger</li>
|
|
/// <li>@ref DbaManualEmergencyConsole</li>
|
|
/// <li>@ref ShellCollection</li>
|
|
/// <li>@ref ShellIndex</li>
|
|
/// <li>@ref IndexCap</li>
|
|
/// <li>@ref IndexGeo</li>
|
|
/// <li>@ref IndexHash</li>
|
|
/// <li>@ref IndexSkiplist</li>
|
|
///
|
|
/// @latexonly\appendix@endlatexonly
|
|
/// <li>@ref Glossary</li>
|
|
/// </ul>
|
|
/// @else
|
|
/// @copydetails DbaManualBasicsTOC
|
|
/// @copydetails DbaManualAuthenticationTOC
|
|
/// @copydetails DbaManualDatafileDebuggerTOC
|
|
/// @copydetails DbaManualEmergencyConsoleTOC
|
|
/// @copydetails ShellCollectionTOC
|
|
/// @copydetails ShellIndexTOC
|
|
/// @copydetails IndexesTOC
|
|
/// @endif
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- DBA MANUAL BASCIS
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualBasicsTOC
|
|
///
|
|
/// <ul>
|
|
/// <li>@ref DbaManualBasics
|
|
/// <ul>
|
|
/// <li>@ref DbaManualBasicsDurability</li>
|
|
/// <li>@ref DbaManualBasicsMvcc</li>
|
|
/// <li>@ref DbaManualBasicsConfig
|
|
/// <ul>
|
|
/// <li>@ref DbaManualBasicsConfigGlobal</li>
|
|
/// <li>@ref DbaManualBasicsConfigCollection</li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualBasics Administrating ArangoDB
|
|
///
|
|
/// @EMBEDTOC{DbaManualBasicsTOC}
|
|
///
|
|
/// @section DbaManualBasicsDurability Mostly Memory/Durability
|
|
///////////////////////////////////////////////////////////////
|
|
///
|
|
/// Database documents are stored in memory-mapped files. Per default, these
|
|
/// memory-mapped files are synced regularly but not instantly. This is often a
|
|
/// good tradeoff between storage performance and durability. If this level of
|
|
/// durabiity is too low for an application, the server can also sync all
|
|
/// modifications to disk instantly. This will give full durability but will come
|
|
/// with a performance penalty as each data modification will trigger a sync
|
|
/// I/O operation.
|
|
///
|
|
/// @section DbaManualBasicsMvcc AppendOnly/MVCC
|
|
////////////////////////////////////////////////
|
|
///
|
|
/// Instead of overwriting existing documents, a completely new version of the
|
|
/// document is generated. The two benefits are:
|
|
///
|
|
/// - Objects can be stored coherently and compactly in the main memory.
|
|
/// - Objects are preserved-isolated writing and reading transactions allow
|
|
/// accessing these objects for parallel operations.
|
|
///
|
|
/// The system collects obsolete versions as garbage, recognizing them as
|
|
/// forsaken. Garbage collection is asynchronous and runs parallel to other
|
|
/// processes.
|
|
///
|
|
/// @section DbaManualBasicsConfig Configuration
|
|
////////////////////////////////////////////////
|
|
///
|
|
/// @subsection DbaManualBasicsConfigGlobal Global Configuration
|
|
////////////////////////////////////////////////////////////////
|
|
///
|
|
/// There are certain default values, which you can store in the
|
|
/// configuration file or supply on the command line.
|
|
///
|
|
/// @copydetails triagens::arango::ArangoServer::_defaultMaximalSize
|
|
///
|
|
/// @copydetails triagens::arango::ArangoServer::_forceSyncShapes
|
|
///
|
|
/// @subsection DbaManualBasicsConfigCollection Per Collection Configuration
|
|
////////////////////////////////////////////////////////////////////////////
|
|
///
|
|
/// You can configure the durability behavior on a per collection basis.
|
|
/// Use the ArangoDB shell to change these properties.
|
|
///
|
|
/// @copydetails JS_PropertiesVocbaseCol
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- DBA MANUAL AUTHENTICATION
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualAuthenticationTOC
|
|
///
|
|
/// <ul>
|
|
/// <li>@ref DbaManualAuthentication
|
|
/// <ul>
|
|
/// <li>@ref DbaManualAuthenticationCommandLine</li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualAuthentication Authentication and Authorisation
|
|
///
|
|
/// @EMBEDTOC{DbaManualAuthenticationTOC}
|
|
///
|
|
/// ArangoDB only provides a very simple authentication interface and
|
|
/// no authorisation. We plan to add authorisation features in later
|
|
/// releases, which will allow the administrator to restrict access to
|
|
/// collections and queries to certain users, given them either read
|
|
/// or write access.
|
|
///
|
|
/// Currently, you can only secure the access to the HTTP client and
|
|
/// admin port in a all-or-nothing fashion.
|
|
/// The collection @LIT{_users} contains all user and the SHA256 of
|
|
/// their passwords. A user can be active or inactive. A typical document
|
|
/// of this collection is
|
|
///
|
|
/// @verbinclude user-document
|
|
///
|
|
/// @section DbaManualAuthenticationCommandLine Command-Line Options for the Authentication and Authorisation
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- DBA MANUAL DATAFILE DEBUGGER
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualDatafileDebuggerTOC
|
|
///
|
|
/// <ul>
|
|
/// <li>@ref DbaManualDatafileDebugger
|
|
/// </li>
|
|
/// </ul>
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualDatafileDebugger Datafile Debugger
|
|
///
|
|
/// @EMBEDTOC{DbaManualDatafileDebuggerTOC}
|
|
///
|
|
/// AranagoDB uses append-only journals. Data corruption should only occur when
|
|
/// the database server is killed. In this case, the corruption should only
|
|
/// occur in the last object(s) being written to the journal.
|
|
///
|
|
/// If a corruption occurs within a normal datafile, then this can only happen
|
|
/// if a hardware fault occurred.
|
|
///
|
|
/// If a journal or datafile is corrupt, shut down the database server and start
|
|
/// the program
|
|
///
|
|
/// @LIT{arango-dfdb}
|
|
///
|
|
/// in order to check the consistency of the datafiles and journals.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- DBA MANUAL EMERGENCY CONSOLE
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualEmergencyConsoleTOC
|
|
///
|
|
/// <ul>
|
|
/// <li>@ref DbaManualEmergencyConsole
|
|
/// </li>
|
|
/// </ul>
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page DbaManualEmergencyConsole Emergency Console
|
|
///
|
|
/// @EMBEDTOC{DbaManualEmergencyConsoleTOC}
|
|
///
|
|
/// The following command starts a emergency console. See below for a list of
|
|
/// frequently used options, see @ref CommandLine "here" for a complete list.
|
|
///
|
|
/// @note Never start the emergency console for a database which also has a
|
|
/// server attached to it. In general the ArangoDB shell is what you want.
|
|
///
|
|
/// @EXAMPLE{start-emergency-console,emergency console}
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- END-OF-FILE
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// Local Variables:
|
|
// mode: c++
|
|
// mode: outline-minor
|
|
// outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)"
|
|
// End:
|